ACPI / scan: Do not use dummy HID for system bus ACPI nodes
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 4 Jan 2013 22:00:54 +0000 (23:00 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 4 Jan 2013 22:00:54 +0000 (23:00 +0100)
At one point acpi_device_set_id() checks if acpi_device_hid(device)
returns NULL, but that never happens, so system bus devices with an
empty list of PNP IDs are given the dummy HID ("device") instead of
the "system bus HID" ("LNXSYBUS").  Fix the code to use the right
check.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: <stable@vger.kernel.org>
drivers/acpi/scan.c

index 53502d1..c88be6c 100644 (file)
@@ -1346,7 +1346,7 @@ static void acpi_device_set_id(struct acpi_device *device)
                        acpi_add_id(device, ACPI_DOCK_HID);
                else if (!acpi_ibm_smbus_match(device))
                        acpi_add_id(device, ACPI_SMBUS_IBM_HID);
-               else if (!acpi_device_hid(device) &&
+               else if (list_empty(&device->pnp.ids) &&
                         ACPI_IS_ROOT_DEVICE(device->parent)) {
                        acpi_add_id(device, ACPI_BUS_HID); /* \_SB, LNXSYBUS */
                        strcpy(device->pnp.device_name, ACPI_BUS_DEVICE_NAME);