lkml.org 
[lkml]   [2011]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[070/115] TPM: Long default timeout fix
    2.6.32-longterm review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>

    commit c4ff4b829ef9e6353c0b133b7adb564a68054979 upstream.

    If duration variable value is 0 at this point, it's because
    chip->vendor.duration wasn't filled by tpm_get_timeouts() yet.
    This patch sets then the lowest timeout just to give enough
    time for tpm_get_timeouts() to further succeed.

    This fix avoids long boot times in case another entity attempts
    to send commands to the TPM when the TPM isn't accessible.

    Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
    Signed-off-by: James Morris <jmorris@namei.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/char/tpm/tpm.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    --- a/drivers/char/tpm/tpm.c
    +++ b/drivers/char/tpm/tpm.c
    @@ -353,12 +353,14 @@ unsigned long tpm_calc_ordinal_duration(
    tpm_protected_ordinal_duration[ordinal &
    TPM_PROTECTED_ORDINAL_MASK];

    - if (duration_idx != TPM_UNDEFINED)
    + if (duration_idx != TPM_UNDEFINED) {
    duration = chip->vendor.duration[duration_idx];
    - if (duration <= 0)
    + /* if duration is 0, it's because chip->vendor.duration wasn't */
    + /* filled yet, so we set the lowest timeout just to give enough */
    + /* time for tpm_get_timeouts() to succeed */
    + return (duration <= 0 ? HZ : duration);
    + } else
    return 2 * 60 * HZ;
    - else
    - return duration;
    }
    EXPORT_SYMBOL_GPL(tpm_calc_ordinal_duration);




    \
     
     \ /
      Last update: 2011-02-16 03:05    [W:0.019 / U:90.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site