[PATCH v6 03/20] tpm: factor out tpm 1.x duration calculation to tpm1-cmd.c

Nayna Jain nayna at linux.ibm.com
Wed Oct 17 15:07:21 UTC 2018



On 10/17/2018 05:54 PM, Winkler, Tomas wrote:
>>
>>>    	ordinal = be32_to_cpu(*((__be32 *) (buf + 6)));
>>> -	rc = i2c_nuvoton_wait_for_data_avail(chip,
>>> -					     tpm_calc_ordinal_duration(chip,
>>> -								       ordinal),
>>> -					     &priv->read_queue);
>>> +	duration = tpm1_calc_ordinal_duration(chip, ordinal);
>>
>> This version of the patch didn't address my previous comment - "The original
>> code in the nuvoton driver does not differentiate between TPM 1.2 and TPM
>> 2.0 as it does in tpm_tis_core.c.
>> Before making any changes, I would first fix it, so that it could easily be
>> backported. Only then do the refactoring."
> This patch doesn't change the original behavior, just change the name of the function,  so there is no regression.
> I would suggest there is another bug in those drivers/devices that is orthogonal to this refactoring and should not block this from merging.

The problem is that you are inadvertently fixing a bug without realizing 
it - [Patch 04/20]. Bug fixes should be addressed independently
of this change, so that they can be backported properly.

> According to what you say  it can call just tpm_calc_oridnal_duration() instead of tpm1_calc_ordinal_duration(chip, ordinal),
> but I prefer that someone that has those devices will do that change on top of this series as  I cannot test it.

The problem is:

1. This patch calls tpm1_calc_ordinal_duration for both the TPM 1.2 and 
TPM 2.0.
2. In the next patch, it adds a new function tpm_calc_ordinal_duration 
as a wrapper for both the TPM 1.2 and TPM 2.0. After this change when it 
calls tpm_calc_ordinal_duration(),
it now calls different functions for TPM 1.2 and TPM 2.0. This is a 
change in behavior.

Thanks & Regards,
    - Nayna

> Thanks
> Tomas
>



More information about the Linux-security-module-archive mailing list