From: Rafael J. Wysocki Date: Sat, 8 Jun 2013 00:55:07 +0000 (+0200) Subject: Revert "ACPI / scan: do not match drivers against objects having scan handlers" X-Git-Tag: v3.9.6~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e9ef737770227e1f7c01851d239a3db10263bbb;p=thirdparty%2Fkernel%2Fstable.git Revert "ACPI / scan: do not match drivers against objects having scan handlers" commit ea7f665612fcc73da6b7698f468cd5fc03a30d47 upstream. Commit 9f29ab11ddbf ("ACPI / scan: do not match drivers against objects having scan handlers") introduced a boot regression on Tony's ia64 HP rx2600. Tony says: "It panics with the message: Kernel panic - not syncing: Unable to find SBA IOMMU: Try a generic or DIG kernel [...] my problem comes from arch/ia64/hp/common/sba_iommu.c where the code in sba_init() says: acpi_bus_register_driver(&acpi_sba_ioc_driver); if (!ioc_list) { but because of this change we never managed to call ioc_init() so ioc_list doesn't get set up, and we die." Revert it to avoid this breakage and we'll fix the problem it attempted to address later. Reported-by: Tony Luck Signed-off-by: Rafael J. Wysocki Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 2855aaee89862..5e7e991717d76 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -553,10 +553,6 @@ static int acpi_bus_match(struct device *dev, struct device_driver *drv) struct acpi_device *acpi_dev = to_acpi_device(dev); struct acpi_driver *acpi_drv = to_acpi_driver(drv); - /* Skip ACPI device objects with scan handlers attached. */ - if (acpi_dev->handler) - return 0; - return acpi_dev->flags.match_driver && !acpi_match_device_ids(acpi_dev, acpi_drv->ids); }