Commit ca499fc87ed945094d952da0eb7eea7dbeb1feec
Committed by
Rafael J. Wysocki
1 parent
296e5809ee
Exists in
smarc-imx_3.14.28_1.0.0_ga
and in
1 other branch
ACPI / hotplug: Fix conflicted PCI bridge notify handlers
The PCI host bridge scan handler installs its own notify handler, handle_hotplug_event_root(), by itself. Nevertheless, the ACPI hotplug framework also installs the common notify handler, acpi_hotplug_notify_cb(), for PCI root bridges. This causes acpi_hotplug_notify_cb() to call _OST method with unsupported error as hotplug.enabled is not set. To address this issue, introduce hotplug.ignore flag, which indicates that the scan handler installs its own notify handler by itself. The ACPI hotplug framework does not install the common notify handler when this flag is set. Signed-off-by: Toshi Kani <toshi.kani@hp.com> [rjw: Changed the name of the new flag] Cc: 3.9+ <stable@vger.kernel.org> # 3.9+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Showing 3 changed files with 5 additions and 1 deletions Side-by-side Diff
drivers/acpi/pci_root.c
drivers/acpi/scan.c
... | ... | @@ -1773,7 +1773,7 @@ |
1773 | 1773 | */ |
1774 | 1774 | list_for_each_entry(hwid, &pnp.ids, list) { |
1775 | 1775 | handler = acpi_scan_match_handler(hwid->id, NULL); |
1776 | - if (handler) { | |
1776 | + if (handler && !handler->hotplug.ignore) { | |
1777 | 1777 | acpi_install_notify_handler(handle, ACPI_SYSTEM_NOTIFY, |
1778 | 1778 | acpi_hotplug_notify_cb, handler); |
1779 | 1779 | break; |