Re: [PATCH] tpm_crb: Fix an error handling path in crb_acpi_add()

From: Matthew Garrett
Date: Sun Aug 20 2023 - 03:00:53 EST


On Sun, Aug 20, 2023 at 08:21:47AM +0200, Christophe JAILLET wrote:
> Le 25/02/2023 à 11:58, Christophe JAILLET a écrit :
> > Some error paths don't call acpi_put_table() before returning.
> > Branch to the correct place instead of doing some direct return.
> >
> > Fixes: 4d2732882703 ("tpm_crb: Add support for CRB devices based on Pluton")
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> > ---
> > drivers/char/tpm/tpm_crb.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c
> > index 99698ee1a744..f7068bd8b3d0 100644
> > --- a/drivers/char/tpm/tpm_crb.c
> > +++ b/drivers/char/tpm/tpm_crb.c
> > @@ -771,12 +771,13 @@ static int crb_acpi_add(struct acpi_device *device)
> > FW_BUG "TPM2 ACPI table has wrong size %u for start method type %d\n",
> > buf->header.length,
> > ACPI_TPM2_COMMAND_BUFFER_WITH_PLUTON);
> > - return -EINVAL;
> > + rc = -EINVAL;
> > + goto out;
> > }
> > crb_pluton = ACPI_ADD_PTR(struct tpm2_crb_pluton, buf, sizeof(*buf));
> > rc = crb_map_pluton(dev, priv, buf, crb_pluton);
> > if (rc)
> > - return rc;
> > + goto out;
> > }
> > priv->sm = sm;
>
> Hi,
>
> polite reminder.
>
> While re-looking at it, the 3rd parameter of crb_map_pluton() (i.e. buf)
> looks unused and could be removed if it makes sense to you.

For the original patch:

ACKed-by: Matthew Garrett <mgarrett@xxxxxxxxxxx>

I'm actually re-working the pluton mapping code because right now it's
impossible to use localities because the ACPI table is unhelpful and I
think that can be worked around.