On Tue, May 12, 2026 at 06:16:23PM +0200, Rafael J. Wysocki wrote:
> From: "Rafael J. Wysocki" <[email protected]>
> 
> 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 <[email protected]>
> ---
>  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 <[email protected]>

Thank you.

BR, Jarkko

Reply via email to