On Sunday, February 20, 2011, Rafael J. Wysocki wrote:Sorry, but you sent the email this Friday, I didn't catch it in time and I wasn't working during the weekend.No, and the author and maintainer have not been responding. If that contiunes,I'll simply ask Linus to revert it.
BTW, the first hunk from that commit in drivers/char/tpm/tpm.c seems to beThe previous code was checking the wrong field of the TPM returned buffer, probably
completely broken:
@@ -577,9 +577,11 @@ duration:
if (rc)
return;
- if (be32_to_cpu(tpm_cmd.header.out.return_code)
- != 3 * sizeof(u32))
+ if (be32_to_cpu(tpm_cmd.header.out.return_code) != 0 ||
+ be32_to_cpu(tpm_cmd.header.out.length)
+ != sizeof(tpm_cmd.header.out) + sizeof(u32) + 3 * sizeof(u32))
return;
+
duration_cap =&tpm_cmd.params.getcap_out.cap.duration;
chip->vendor.duration[TPM_SHORT] =
usecs_to_jiffies(be32_to_cpu(duration_cap->tpm_short));
Namely, either the old code always returned as a result of the conditional
being removed, or the new code will always return as a result of
the (... != 0) check. I wonder if there's supposed to be (... == 0) instead?
[And why not to simply use 4*sizeof(u32) FWIW?]I can't see why, I'll update it.