[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] This fixes the state machine of the vTPM driver.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 2aa9e9867477a3a5ede39acea8cbb0bbf0f8c88b
# Parent  c9d706834d25a9efe5bd3a98cbf32c6998f30ab4
This fixes the state machine of the vTPM driver.

Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx>

diff -r c9d706834d25 -r 2aa9e9867477 
linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c Thu Apr 13 09:57:57 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c Thu Apr 13 09:59:08 2006
@@ -164,10 +164,10 @@
 
        switch (frontend_state) {
        case XenbusStateInitialising:
+       case XenbusStateInitialised:
+               break;
+
        case XenbusStateConnected:
-               break;
-
-       case XenbusStateInitialised:
                err = connect_ring(be);
                if (err) {
                        return;
diff -r c9d706834d25 -r 2aa9e9867477 
linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c      Thu Apr 13 
09:57:57 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c      Thu Apr 13 
09:59:08 2006
@@ -334,12 +334,6 @@
                goto abort_transaction;
        }
 
-       err = xenbus_printf(xbt, dev->nodename,
-                           "state", "%d", XenbusStateInitialised);
-       if (err) {
-               goto abort_transaction;
-       }
-
        err = xenbus_transaction_end(xbt, 0);
        if (err == -EAGAIN)
                goto again;
@@ -347,6 +341,9 @@
                xenbus_dev_fatal(dev, err, "completing transaction");
                goto destroy_tpmring;
        }
+
+       xenbus_switch_state(dev, XenbusStateConnected);
+
        return 0;
 
 abort_transaction:
@@ -387,6 +384,7 @@
                if (tp->is_suspended == 0) {
                        device_unregister(&dev->dev);
                }
+               xenbus_switch_state(dev, XenbusStateClosed);
                break;
        }
 }
@@ -439,6 +437,7 @@
 
        /* lock, so no app can send */
        mutex_lock(&suspend_lock);
+       xenbus_switch_state(dev, XenbusStateClosed);
        tp->is_suspended = 1;
 
        for (ctr = 0; atomic_read(&tp->tx_busy) && ctr <= 25; ctr++) {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.