On Sun, Aug 20, 2017 at 09:26:32PM +0300, Jarkko Sakkinen wrote:
> On Fri, Aug 18, 2017 at 02:15:31PM +0200, Alexander Steffen wrote:
> > In order to avoid delaying the code longer than necessary while still
> > giving the TPM enough time to execute the self tests asynchronously, start
> > with a small delay between two polls and increase it each round.
> > 
> > Signed-off-by: Alexander Steffen <alexander.stef...@infineon.com>
> > ---
> >  drivers/char/tpm/tpm2-cmd.c | 17 +++++++++--------
> >  1 file changed, 9 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
> > index 7e328d6..e3d4cc3 100644
> > --- a/drivers/char/tpm/tpm2-cmd.c
> > +++ b/drivers/char/tpm/tpm2-cmd.c
> > @@ -877,20 +877,17 @@ static int tpm2_start_selftest(struct tpm_chip *chip, 
> > bool full)
> >  static int tpm2_do_selftest(struct tpm_chip *chip)
> >  {
> >     int rc;
> > -   unsigned int loops;
> > -   unsigned int delay_msec = 100;
> > -   unsigned long duration;
> > -   int i;
> > -
> > -   duration = tpm2_calc_ordinal_duration(chip, TPM2_CC_SELF_TEST);
> > +   unsigned int delay_msec = 20;
> > +   long duration;
> >  
> > -   loops = jiffies_to_msecs(duration) / delay_msec;
> > +   duration = jiffies_to_msecs(
> > +           tpm2_calc_ordinal_duration(chip, TPM2_CC_SELF_TEST));
> >  
> >     rc = tpm2_start_selftest(chip, false);
> >     if (rc)
> >             return rc;
> >  
> > -   for (i = 0; i < loops; i++) {
> > +   while (duration > 0) {
> >             /* Attempt to read a PCR value */
> >             rc = tpm2_pcr_read(chip, 0, NULL);
> >             if (rc < 0)
> > @@ -900,6 +897,10 @@ static int tpm2_do_selftest(struct tpm_chip *chip)
> >                     break;
> >  
> >             msleep(delay_msec);
> > +           duration -= delay_msec;
> > +
> > +           /* wait longer the next round */
> > +           delay_msec *= 2;
> >     }
> >  
> >     return rc;
> > -- 
> > 2.7.4
> > 
> 
> Reviewed-by: Jarkko Sakkinen <jarkko.sakki...@linux.intel.com>
> 
> /Jarkko


Applying: tpm2-cmd: Use dynamic delay to wait for self test result
error: sha1 information is lacking or useless (drivers/char/tpm/tpm2-cmd.c).
error: could not build fake ancestor
Patch failed at 0001 tpm2-cmd: Use dynamic delay to wait for self test result
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Please rebase your patches.

/Jarkko

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
tpmdd-devel mailing list
tpmdd-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tpmdd-devel

Reply via email to