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