Thread (7 messages) 7 messages, 2 authors, 2016-08-29

Re: [PATCH] tpm: fix a race condition in tpm2_unseal_trusted()

From: Jason Gunthorpe <hidden>
Date: 2016-08-28 18:52:10
Also in: lkml

On Sun, Aug 28, 2016 at 08:36:52AM +0200, Jarkko Sakkinen wrote:
quoted hunk ↗ jump to hunk
 
@@ -576,7 +576,8 @@ static int tpm2_load(struct tpm_chip *chip,
 		goto out;
 	}
 
-	rc = tpm_transmit_cmd(chip, buf.data, PAGE_SIZE, "loading blob");
+	rc = tpm_transmit_cmd(chip, buf.data, PAGE_SIZE, TPM_TRANSMIT_UNLOCKED,
+			      "loading blob");
I still don't like this, required mutex's should not be split outside the
function that needs them without more a more obvious indication:
+	mutex_lock(&chip->tpm_mutex);
 	rc = tpm2_load(chip, payload, options, &blob_handle);
 	if (rc)
-		return rc;
I recommend you stick with the idiom and do this:

        mutex_lock(&chip->tpm_mutex);
  	rc = tpm2_load(chip, payload, options, &blob_handle, TPM_TRANSMIT_UNLOCKED);

Which makes it easy to see we are doing it right everywhere.

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help