From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Fioravante Subject: [PATCH 7/7] vtpm Mini-Os domain: linux tpmbk bugfixes Date: Wed, 25 Aug 2010 11:29:22 -0400 Message-ID: <4C7536D2.4010305@jhuapl.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0216362653==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a cryptographically signed message in MIME format. --===============0216362653== Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms070101080005050307090005" This is a cryptographically signed message in MIME format. --------------ms070101080005050307090005 Content-Type: multipart/mixed; boundary="------------090407000000090803080609" This is a multi-part message in MIME format. --------------090407000000090803080609 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Signed-off-by: Matthew Fioravante This patch is for the xen linux kernel. It was made against 2.6.18 but=20 is fairly simple and should apply cleanly to all of the xen kernels out=20 there. This patch fixes a couple of race conditions in the linux tpmbk driver.=20 One of them is during startup and will cause the vtpm domains to fail to = start correctly. The other race condition happens during shutdown and=20 causes the vtpm tpmfrontend to release a shared page before the backend=20 driver has unmapped it. --------------090407000000090803080609 Content-Type: text/x-patch; name="linux-tpmbk.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="linux-tpmbk.patch" diff -r 5ad2a1476b3c -r 1dfbe5675b7a drivers/xen/tpmback/xenbus.c --- a/drivers/xen/tpmback/xenbus.c Mon Jun 07 13:54:21 2010 -0400 +++ b/drivers/xen/tpmback/xenbus.c Wed Jul 07 13:38:42 2010 -0400 @@ -52,6 +52,18 @@ return res; } =20 +static void tpmback_disconnect(struct xenbus_device *dev) { + struct backend_info *be =3D dev->dev.driver_data; + + if (be->tpmif) { + be->tpmif->bi =3D NULL; + vtpm_release_packets(be->tpmif, 0); + tpmif_put(be->tpmif); + be->tpmif =3D NULL; + } + return; +} + static int tpmback_remove(struct xenbus_device *dev) { struct backend_info *be =3D dev->dev.driver_data; @@ -63,12 +75,7 @@ kfree(be->backend_watch.node); be->backend_watch.node =3D NULL; } - if (be->tpmif) { - be->tpmif->bi =3D NULL; - vtpm_release_packets(be->tpmif, 0); - tpmif_put(be->tpmif); - be->tpmif =3D NULL; - } + tpmback_disconnect(dev); kfree(be); dev->dev.driver_data =3D NULL; return 0; @@ -162,6 +169,7 @@ =20 case XenbusStateUnknown: /* keep it here */ case XenbusStateClosed: + tpmback_disconnect(dev); /*Unmap shared pages first */ xenbus_switch_state(dev, XenbusStateClosed); device_unregister(&be->dev->dev); tpmback_remove(dev); @@ -213,9 +221,10 @@ if (err) xenbus_dev_fatal(be->dev, err, "end of transaction"); =20 + be->tpmif->status =3D CONNECTED; err =3D xenbus_switch_state(dev, XenbusStateConnected); - if (!err) - be->tpmif->status =3D CONNECTED; + if (err) + be->tpmif->status =3D DISCONNECTED; return; abort: xenbus_transaction_end(xbt, 1); --------------090407000000090803080609-- --------------ms070101080005050307090005 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIHZzCC A5kwggMCoAMCAQICBD/xkcEwDQYJKoZIhvcNAQEFBQAwLzELMAkGA1UEBhMCVVMxDzANBgNV BAoTBkpIVUFQTDEPMA0GA1UECxMGQklTRENBMB4XDTA5MDcxNzE1MDgwOVoXDTEyMDcxNzE1 MzgwOVowZjELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkpIVUFQTDEPMA0GA1UECxMGUGVvcGxl MTUwFgYDVQQLEw9WUE5Hcm91cC1CSVNEQ0EwGwYDVQQDExRNYXR0aGV3IEUgRmlvcmF2YW50 ZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyzeGk9zPA33fsB3uvk/Izs9GGHCpHI8b zXdBIVg6++S+jK53PoaWgmtSLr/c732ea1zPR6ACymwAWON+U5rB+VJAUZ4l/p0T3LZjE1Kq nbQJ+pgb+WAmBtdrxrtky61E9HD8dO70x37+ejhunpF9OuSU5MnOPmMx6ranvahUsOsCAwEA AaOCAYkwggGFMAsGA1UdDwQEAwIFIDAbBg0rBgEEAbMlCwMBAQEBBAoWCGZpb3JhbWUxMBsG DSsGAQQBsyULAwEBAQIEChIIMDAxMDQyNjEwWAYJYIZIAYb6ax4BBEsMSVRoZSBwcml2YXRl IGtleSBjb3JyZXNwb25kaW5nIHRvIHRoaXMgY2VydGlmaWNhdGUgbWF5IGhhdmUgYmVlbiBl eHBvcnRlZC4wKAYDVR0RBCEwH4EdTWF0dGhldy5GaW9yYXZhbnRlQGpodWFwbC5lZHUwUgYD VR0fBEswSTBHoEWgQ6RBMD8xCzAJBgNVBAYTAlVTMQ8wDQYDVQQKEwZKSFVBUEwxDzANBgNV BAsTBkJJU0RDQTEOMAwGA1UEAxMFQ1JMNDkwHwYDVR0jBBgwFoAUCDUpmxH52EU2CyWmF2EJ MB1yqeswHQYDVR0OBBYEFO3ziReJlElP3ilaLQ5gwsg0RlgoMAkGA1UdEwQCMAAwGQYJKoZI hvZ9B0EABAwwChsEVjcuMQMCBLAwDQYJKoZIhvcNAQEFBQADgYEAMOY3Zf6gx3gv/fDd11cz h2Daj+8NExx/2Le3c88gfDVhPVgVX5S52EjeFbK5yVP0Xlm82vRADO47dTA2PKbpp50rJcAZ rl5bg5tQ/WbLAaRITCtOJWVVKXD9V7X2o3Z/IM2op3hb4mmDXSDS+Hzn0Jd2mAXl4iHPfI0p XlXqA9QwggPGMIIDL6ADAgECAgQ/8cn9MA0GCSqGSIb3DQEBBQUAMC8xCzAJBgNVBAYTAlVT MQ8wDQYDVQQKEwZKSFVBUEwxDzANBgNVBAsTBkJJU0RDQTAeFw0xMDA2MTExODIyMDZaFw0x MzA2MTExODUyMDZaMGYxCzAJBgNVBAYTAlVTMQ8wDQYDVQQKEwZKSFVBUEwxDzANBgNVBAsT BlBlb3BsZTE1MBYGA1UECxMPVlBOR3JvdXAtQklTRENBMBsGA1UEAxMUTWF0dGhldyBFIEZp b3JhdmFudGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ6W8FUj+qNTW+ZXFu3Xd8k6 PYgSXYu6s+JwDTjBTyuyTsuZ6SjdYoqLrJdvFP7HFCREueYD8AFmCSt7lckALAOGnYAyouQ6 A9VBw0BMKW2O4hyyXqtDT6+AamDapwhT2xOhwvM0ia6+Kip/oFVEE9/UiBanYiDycGS/BWE0 UP87AgMBAAGjggG2MIIBsjALBgNVHQ8EBAMCB4AwKwYDVR0QBCQwIoAPMjAxMDA2MTExODIy MDZagQ8yMDEyMDcxNzIyNTIwNlowGwYNKwYBBAGzJQsDAQEBAQQKFghmaW9yYW1lMTAbBg0r BgEEAbMlCwMBAQECBAoSCDAwMTA0MjYxMFgGCWCGSAGG+mseAQRLDElUaGUgcHJpdmF0ZSBr ZXkgY29ycmVzcG9uZGluZyB0byB0aGlzIGNlcnRpZmljYXRlIG1heSBoYXZlIGJlZW4gZXhw b3J0ZWQuMCgGA1UdEQQhMB+BHU1hdHRoZXcuRmlvcmF2YW50ZUBqaHVhcGwuZWR1MFIGA1Ud HwRLMEkwR6BFoEOkQTA/MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGSkhVQVBMMQ8wDQYDVQQL EwZCSVNEQ0ExDjAMBgNVBAMTBUNSTDU2MB8GA1UdIwQYMBaAFAg1KZsR+dhFNgslphdhCTAd cqnrMB0GA1UdDgQWBBTui2MYOq/cB2fs3ULQR59XWf2EzTAJBgNVHRMEAjAAMBkGCSqGSIb2 fQdBAAQMMAobBFY3LjEDAgSwMA0GCSqGSIb3DQEBBQUAA4GBACTvR0IeGDQoVS87maiuQESQ EQ/CaLoxmX3aO+arr4No1xUHtrBI7y58SWYJv6b/H3WWpKuPAlsI2ByrryKe7A40xLEH6Psu 0qTfzdjbyVlOUqnytVYGLTS0UaBiVAeUNWmfg4PeYN5Kqcn6VDCEiS/CClS7SVXzeH4IBVVG GfcMMYICMTCCAi0CAQEwNzAvMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGSkhVQVBMMQ8wDQYD VQQLEwZCSVNEQ0ECBD/xyf0wCQYFKw4DAhoFAKCCAVAwGAYJKoZIhvcNAQkDMQsGCSqGSIb3 DQEHATAcBgkqhkiG9w0BCQUxDxcNMTAwODI1MTUyOTIyWjAjBgkqhkiG9w0BCQQxFgQUS4ve 8KA5VSafymOPAGNVUL0Onx8wRgYJKwYBBAGCNxAEMTkwNzAvMQswCQYDVQQGEwJVUzEPMA0G A1UEChMGSkhVQVBMMQ8wDQYDVQQLEwZCSVNEQ0ECBD/xkcEwSAYLKoZIhvcNAQkQAgsxOaA3 MC8xCzAJBgNVBAYTAlVTMQ8wDQYDVQQKEwZKSFVBUEwxDzANBgNVBAsTBkJJU0RDQQIEP/GR wTBfBgkqhkiG9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0D AgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwDQYJKoZIhvcN AQEBBQAEgYBrJQPpJoscj/hH6K1fuCKtTL7NP20Xgs4imvPOVo9id7THCpAq6Ibw8EGTh5/8 0L7lLk7Z2/8Gw7F1DNFvxYsfgY5meBjb5pFhw0tqezD+ZuWhd6Wlo7/z5f0ibue+nzlT14k8 bBGEBp8p4KQ+6IjkWfu/2CHzCA6rdIpmMRnRQgAAAAAAAA== --------------ms070101080005050307090005-- --===============0216362653== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============0216362653==--