tpm_tis: further simplify calculation of ordinal duration

commit 07b133e606 ("char/tpm: simplify duration calculation and
eliminate smatch warning.") includes a misleading test that is always
false. The tpm_ordinal_duration table is only valid for TPM_PROTECTED
ordinals where the higher 16 bits are all 0, anyway.

Signed-off-by: Martin Wilck <Martin.Wilck@ts.fujitsu.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Acked-by: Peter Huewe <peterhuewe@gmx.de>
This commit is contained in:
Martin Wilck 2015-11-20 14:32:33 +01:00 committed by Jarkko Sakkinen
parent ebd68df3f2
commit f728643001

View File

@ -310,10 +310,12 @@ unsigned long tpm_calc_ordinal_duration(struct tpm_chip *chip,
{ {
int duration_idx = TPM_UNDEFINED; int duration_idx = TPM_UNDEFINED;
int duration = 0; int duration = 0;
u8 category = (ordinal >> 24) & 0xFF;
if ((category == TPM_PROTECTED_COMMAND && ordinal < TPM_MAX_ORDINAL) || /*
(category == TPM_CONNECTION_COMMAND && ordinal < TSC_MAX_ORDINAL)) * We only have a duration table for protected commands, where the upper
* 16 bits are 0. For the few other ordinals the fallback will be used.
*/
if (ordinal < TPM_MAX_ORDINAL)
duration_idx = tpm_ordinal_duration[ordinal]; duration_idx = tpm_ordinal_duration[ordinal];
if (duration_idx != TPM_UNDEFINED) if (duration_idx != TPM_UNDEFINED)