|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [TPM] Fix the tpm frontend to properly sh
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID 2ae6000abda3d0bcdcafde3074fa77febf57fbdd
# Parent bd6d4a499e47c6a90ff0e06d242f7c2b47b12e08
[TPM] Fix the tpm frontend to properly shut down when the domain
is shutting down (call to xenbus_frontend_closed()). Also the driver
now waits longer until an outstanding response has been received (to
support a busy system). Moves the 'Unknown' state with the other
states that are not used by the TPM frontend.
Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx>
---
linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c | 11 +++++++----
linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c | 8 +++++---
2 files changed, 12 insertions(+), 7 deletions(-)
diff -r bd6d4a499e47 -r 2ae6000abda3
linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
--- a/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c Wed Oct 18 15:13:41
2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c Wed Oct 18 15:16:37
2006 +0100
@@ -343,6 +343,7 @@ static void backend_changed(struct xenbu
case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
+ case XenbusStateUnknown:
break;
case XenbusStateConnected:
@@ -351,13 +352,14 @@ static void backend_changed(struct xenbu
case XenbusStateClosing:
tpmif_set_connected_state(tp, 0);
+ xenbus_frontend_closed(dev);
break;
- case XenbusStateUnknown:
case XenbusStateClosed:
+ tpmif_set_connected_state(tp, 0);
if (tp->is_suspended == 0)
device_unregister(&dev->dev);
- xenbus_switch_state(dev, XenbusStateClosed);
+ xenbus_frontend_closed(dev);
break;
}
}
@@ -419,9 +421,10 @@ static int tpmfront_suspend(struct xenbu
mutex_lock(&suspend_lock);
tp->is_suspended = 1;
- for (ctr = 0; atomic_read(&tp->tx_busy) && ctr <= 25; ctr++) {
+ for (ctr = 0; atomic_read(&tp->tx_busy) && ctr <= 300; ctr++) {
if ((ctr % 10) == 0)
- printk("TPM-FE [INFO]: Waiting for outstanding
request.\n");
+ printk("TPM-FE [INFO]: Waiting for outstanding "
+ "request.\n");
/*
* Wait for a request to be responded to.
*/
diff -r bd6d4a499e47 -r 2ae6000abda3
linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c Wed Oct 18 15:13:41
2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c Wed Oct 18 15:16:37
2006 +0100
@@ -157,10 +157,12 @@ static void frontend_changed(struct xenb
case XenbusStateClosing:
be->instance = -1;
- break;
-
- case XenbusStateUnknown:
+ xenbus_switch_state(dev, XenbusStateClosing);
+ break;
+
+ case XenbusStateUnknown: /* keep it here */
case XenbusStateClosed:
+ xenbus_switch_state(dev, XenbusStateClosed);
device_unregister(&be->dev->dev);
tpmback_remove(dev);
break;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [TPM] Fix the tpm frontend to properly shut down when the domain,
Xen patchbot-unstable <=
|
|
|
|
|