2014-01-27 00:01:55

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH] ACPI / scan: Clear match_driver flag in acpi_bus_trim()

From: Rafael J. Wysocki <[email protected]>

Drivers should not bind to struct acpi_device objects that
acpi_bus_trim() has been called for, so make that function
clear flags.match_driver for those objects.

If that is not done, an ACPI driver may theoretically try to operate
a device that is not physically present.

Fixes: 202317a573b2 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace)
Signed-off-by: Rafael J. Wysocki <[email protected]>
---
drivers/acpi/scan.c | 1 +
1 file changed, 1 insertion(+)

Index: linux-pm/drivers/acpi/scan.c
===================================================================
--- linux-pm.orig/drivers/acpi/scan.c
+++ linux-pm/drivers/acpi/scan.c
@@ -2106,6 +2106,7 @@ void acpi_bus_trim(struct acpi_device *a
list_for_each_entry_reverse(child, &adev->children, node)
acpi_bus_trim(child);

+ adev->flags.match_driver = false;
if (handler) {
if (handler->detach)
handler->detach(adev);


2014-01-28 22:05:55

by Toshi Kani

[permalink] [raw]
Subject: Re: [PATCH] ACPI / scan: Clear match_driver flag in acpi_bus_trim()

On Mon, 2014-01-27 at 01:16 +0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> Drivers should not bind to struct acpi_device objects that
> acpi_bus_trim() has been called for, so make that function
> clear flags.match_driver for those objects.
>
> If that is not done, an ACPI driver may theoretically try to operate
> a device that is not physically present.
>
> Fixes: 202317a573b2 (ACPI / scan: Add acpi_device objects for all device nodes in the namespace)
> Signed-off-by: Rafael J. Wysocki <[email protected]>

Acked-by: Toshi Kani <[email protected]>

Thanks,
-Toshi