RE: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()
From: Winkler, Tomas
Date: Wed Oct 17 2018 - 19:08:54 EST
> -----Original Message-----
> From: Jarkko Sakkinen [mailto:jarkko.sakkinen@xxxxxxxxxxxxxxx]
> Sent: Thursday, October 18, 2018 02:01
> To: Winkler, Tomas <tomas.winkler@xxxxxxxxx>
> Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>; Jason Gunthorpe
> <jgg@xxxxxxxx>; Nayna Jain <nayna@xxxxxxxxxxxxxxxxxx>; Usyskin,
> Alexander <alexander.usyskin@xxxxxxxxx>; Struk, Tadeusz
> <tadeusz.struk@xxxxxxxxx>; linux-integrity@xxxxxxxxxxxxxxx; linux-security-
> module@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] tpm: tpm_try_transmit() ignore value of go_to_idle()
>
> On Mon, 15 Oct 2018, Tomas Winkler wrote:
> > Ignore the return value of go_to_idle() in tpm_try_transmit().
> > Once it may shadow the return value of actual tpm operation, second
> > the consequent command will fail as well and the error will be caought
> > anyway.
> > Last fix wrong goto, that jumped back instead of forward.
> >
> > Fixes: 627448e85c76 ("tpm: separate cmd_ready/go_idle from
> > runtime_pm")
> > Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> > ---
> > drivers/char/tpm/tpm-interface.c | 4 +---
> > 1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/char/tpm/tpm-interface.c
> > b/drivers/char/tpm/tpm-interface.c
> > index 129f640424b7..f69c711bf74a 100644
> > --- a/drivers/char/tpm/tpm-interface.c
> > +++ b/drivers/char/tpm/tpm-interface.c
> > @@ -547,9 +547,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip
> *chip,
> > dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);
> >
> > out:
> > - rc = tpm_go_idle(chip, flags);
> > - if (rc)
> > - goto out;
> > + (void)tpm_go_idle(chip, flags);
> >
> > if (need_locality)
> > tpm_relinquish_locality(chip, flags);
> > --
> > 2.14.4
> >
> >
>
> LGTM. Should be probably Cc'd to stable (can add).
>
> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
I've posted another one, there are more issues in the flow.