Hi Andy, On 1/23/23 18:10, Andy Shevchenko wrote: > acpi_dev_get_first_match_dev() gets ACPI device with the bumped > refcount. The caller must drop it when it's done. > > Fix ACPI device refcounting in apple_gmux_backlight_present(). > > Fixes: 3cf3b7f012f3 ("ACPI: video: Fix Apple GMUX backlight detection") > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Thank you for your work on this, much appreciated and I like the new acpi_get_first_match_physical_node(). But I don't think this patch is a good idea. There is a regression related to apple_gmux_backlight_present() with a patch-set fixing it pending. And that patch-set actually removes this function. Adding a fix for this real, but not really important leak now, will just make backporting the actual fix harder. So I would prefer for this patch to not go in and to go for (a to be submitted v2) of the patch-set fixing the regression right away instead. Regards, Hans > --- > drivers/acpi/video_detect.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c > index 65cec7bb6d96..0ccde0d4c527 100644 > --- a/drivers/acpi/video_detect.c > +++ b/drivers/acpi/video_detect.c > @@ -114,12 +114,14 @@ static bool apple_gmux_backlight_present(void) > { > struct acpi_device *adev; > struct device *dev; > + bool ret; > > adev = acpi_dev_get_first_match_dev(GMUX_ACPI_HID, NULL, -1); > if (!adev) > return false; > > - dev = acpi_get_first_physical_node(adev); > + dev = get_device(acpi_get_first_physical_node(adev)); > + acpi_dev_put(adev); > if (!dev) > return false; > > @@ -127,7 +129,9 @@ static bool apple_gmux_backlight_present(void) > * drivers/platform/x86/apple-gmux.c only supports old style > * Apple GMUX with an IO-resource. > */ > - return pnp_get_resource(to_pnp_dev(dev), IORESOURCE_IO, 0) != NULL; > + ret = pnp_get_resource(to_pnp_dev(dev), IORESOURCE_IO, 0) != NULL; > + put_device(dev); > + return ret; > } > > /* Force to use vendor driver when the ACPI device is known to be