Re: [PATCH v1] tpm_crb: Check ACPI_COMPANION() against NULL during probe
From: Rafael J. Wysocki
Date: Tue May 19 2026 - 17:04:21 EST
On Sat, May 16, 2026 at 3:15 AM Jarkko Sakkinen <jarkko@xxxxxxxxxx> wrote:
>
> On Tue, May 12, 2026 at 06:16:23PM +0200, Rafael J. Wysocki wrote:
> > From: "Rafael J. Wysocki" <rafael.j.wysocki@xxxxxxxxx>
> >
> > Every platform driver can be forced to match a device that doesn't match
> > its list of device IDs because of device_match_driver_override(), so
> > platform drivers that rely on the existence of a device's ACPI companion
> > object need to verify its presence.
> >
> > Accordingly, add a requisite ACPI_COMPANION() check against NULL to the
> > tpm_crb driver.
> >
> > Fixes: 48fe2cddc85c ("tpm_crb: Convert ACPI driver to a platform one")
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > ---
> > drivers/char/tpm/tpm_crb.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > --- a/drivers/char/tpm/tpm_crb.c
> > +++ b/drivers/char/tpm/tpm_crb.c
> > @@ -786,8 +786,8 @@ static int crb_map_pluton(struct device
> > static int crb_acpi_probe(struct platform_device *pdev)
> > {
> > struct device *dev = &pdev->dev;
> > - struct acpi_device *device = ACPI_COMPANION(dev);
> > struct acpi_table_tpm2 *buf;
> > + struct acpi_device *device;
> > struct crb_priv *priv;
> > struct tpm_chip *chip;
> > struct tpm2_crb_smc *crb_smc;
> > @@ -797,6 +797,10 @@ static int crb_acpi_probe(struct platfor
> > u32 sm;
> > int rc;
> >
> > + device = ACPI_COMPANION(dev);
> > + if (!device)
> > + return -ENODEV;
> > +
> > status = acpi_get_table(ACPI_SIG_TPM2, 1,
> > (struct acpi_table_header **) &buf);
> > if (ACPI_FAILURE(status) || buf->header.length < sizeof(*buf)) {
> >
> >
> >
>
> Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
Thanks!
So do you want me to pick up this one?