Skip to contentSkip to conversation

TPM suspend regression fix

GIT PULL Rajiv Andrade 1 participant 2 messages Oct 10, 2011 TPM device driver

lore
Share & tools
lore
#0 lore raw

Hi James,

Please pull the change since commit e00fb3f7af111d1b3252f7d622213d2e22be65f5 in your next branch:

TOMOYO: Fix domain transition failure warning. (2011-09-28 11:53:15 +1000)

that is available in the git repository at:
git://github.com/srajiv/tpm.git for-james

Stefan Berger (1):
TPM: Refuse activation of tpm_tis driver if TPM is not working correctly

 drivers/char/tpm/tpm_tis.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
drivers/char/tpm/tpm_tis.c +13 -0
index 3f4051a..2369e78 100644
@@ -549,6 +549,7 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
 	u32 vendor, intfcaps, intmask;
 	int rc, i, irq_s, irq_e;
 	struct tpm_chip *chip;
+	u8 digest[TPM_DIGEST_SIZE];
 
 	if (!(chip = tpm_register_hardware(dev,&tpm_tis)))
 		return -ENODEV;
@@ -616,6 +617,18 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
 	/* get the timeouts before testing for irqs */
 	tpm_get_timeouts(chip);
 
+	/* test for correctly working TPM; refuse driver if not working
+	   to prevent suspend/resume problems */
+	rc = tpm_pcr_read(chip->dev_num, 0, digest);
+	if (rc != 0) {
+		dev_err(dev, "Could not read PCR 0. "
+			"TPM is not working correctly.\n");
+		dev_err(dev, "Was machine previously suspended without TPM "
+			"driver present?\n");
+		rc = -ENODEV;
+		goto out_err;
+	}
+
 	/* INTERRUPT Setup */
 	init_waitqueue_head(&chip->vendor.read_queue);
 	init_waitqueue_head(&chip->vendor.int_queue);
#1 lore raw
Quoted 11 lines · Rajiv Andrade

Hi James,

Please pull the change since commit e00fb3f7af111d1b3252f7d622213d2e22be65f5 in your next branch:

TOMOYO: Fix domain transition failure warning. (2011-09-28 11:53:15
+1000)

that is available in the git repository at:
git://github.com/srajiv/tpm.git for-james

Quoted 6 lines

Stefan Berger (1):
TPM: Refuse activation of tpm_tis driver if TPM is not working
correctly

 drivers/char/tpm/tpm_tis.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

Hi James,

Please do not consider this one, there's one more suspend fix I'm working on, so it's better to have all them in one request instead.

Thanks,
Rajiv