Re: [PATCH v1] drivers/acpi/acpi_video: check return value of acpi_get_parent()

From: Li Zhong
Date: Fri Sep 16 2022 - 21:25:25 EST


On Sat, Sep 10, 2022 at 9:17 AM Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
>
> On Fri, Sep 2, 2022 at 9:42 AM Li Zhong <floridsleeves@xxxxxxxxx> wrote:
> >
> > Check return status of acpi_get_parent() to confirm whether it fails.
> >
> > Signed-off-by: Li Zhong <floridsleeves@xxxxxxxxx>
> > ---
> > drivers/acpi/acpi_video.c | 8 +++++---
> > 1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> > index 5cbe2196176d..5fca9a39b1a4 100644
> > --- a/drivers/acpi/acpi_video.c
> > +++ b/drivers/acpi/acpi_video.c
> > @@ -1,4 +1,4 @@
> > -// SPDX-License-Identifier: GPL-2.0-or-later
> > + // SPDX-License-Identifier: GPL-2.0-or-later
>
> This change surely is not intended?
>
> > /*
> > * video.c - ACPI Video Driver
> > *
> > @@ -1753,6 +1753,7 @@ static void acpi_video_dev_register_backlight(struct acpi_video_device *device)
> > int result;
> > static int count;
> > char *name;
> > + acpi_status status;
> >
> > result = acpi_video_init_brightness(device);
> > if (result)
> > @@ -1766,8 +1767,9 @@ static void acpi_video_dev_register_backlight(struct acpi_video_device *device)
> > return;
> > count++;
> >
> > - acpi_get_parent(device->dev->handle, &acpi_parent);
> > -
> > + status = acpi_get_parent(device->dev->handle, &acpi_parent);
> > + if (ACPI_FAILURE(status))
> > + return;
>
> But device->dev->handle is known to be valid, so the only case in
> which acpi_get_parent() above can fail is when the given namespace
> object has no parent, in which case acpi_parent will be NULL, so that
> should be caught my the check below, shouldn't it?
>
> > pdev = acpi_get_pci_dev(acpi_parent);
> > if (pdev) {
> > parent = &pdev->dev;
> > --

That makes sense. Thank you!