linux/include/acpi
Rafael J. Wysocki 3c2cc7ff9e ACPI / hotplug / PCI: Consolidate ACPIPHP with ACPI core hotplug
The ACPI-based PCI hotplug (ACPIPHP) code currently attaches its
hotplug context objects directly to ACPI namespace nodes representing
hotplug devices.  However, after recent changes causing struct
acpi_device to be created for every namespace node representing a
device (regardless of its status), that is not necessary any more.
Moreover, it's vulnerable to the theoretical issue that the ACPI
handle passed in the context between handle_hotplug_event() and
hotplug_event_work() may become invalid in the meantime (as a
result of a concurrent table unload).

In principle, this issue might be addressed by adding a non-empty
release handler for ACPIPHP hotplug context objects analogous to
acpi_scan_drop_device(), but that would duplicate the code in that
function and in acpi_device_del_work_fn().  For this reason, it's
better to modify ACPIPHP to attach its device hotplug contexts to
struct device objects representing hotplug devices and make it
use acpi_hotplug_notify_cb() as its notify handler.  At the same
time, acpi_device_hotplug() can be modified to dispatch the new
.hp.event() callback pointing to acpiphp_hotplug_event() from ACPI
device objects associated with PCI devices or use the generic
ACPI device hotplug code for device objects with matching scan
handlers.

This allows the existing code duplication between ACPIPHP and the
ACPI core to be reduced too and makes further ACPI-based device
hotplug consolidation possible.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-02-06 17:31:37 +01:00
..
platform ACPICA: Utilities: Cleanup declarations of the acpi_gbl_debug_file global. 2014-01-08 15:31:39 +01:00
acbuffer.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acconfig.h ACPICA: Tests: Add CHECKSUM_ABORT protection for test utilities. 2013-11-21 13:47:03 +01:00
acexcep.h ACPICA: Cleanup exception codes. 2013-09-24 01:46:25 +02:00
acnames.h ACPICA: Predefine name macros: Sort list. 2013-10-30 12:24:21 +01:00
acoutput.h ACPICA: Remove unused macros, no functional change 2013-06-01 21:54:31 +02:00
acpi_bus.h ACPI / hotplug / PCI: Consolidate ACPIPHP with ACPI core hotplug 2014-02-06 17:31:37 +01:00
acpi_drivers.h ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
acpi_io.h ACPI / i915: Fix incorrect <acpi/acpi.h> inclusions via <linux/acpi_io.h> 2013-12-07 01:24:33 +01:00
acpi_numa.h ACPI: Store SRAT table revision 2012-01-17 04:19:04 -05:00
acpi.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
acpiosxf.h ACPI / hotplug: Consolidate deferred execution of ACPI hotplug routines 2013-11-07 19:28:48 +01:00
acpixf.h ACPICA: Introduce acpi_get_data_full() and rework acpi_get_data() 2014-02-05 17:41:16 +01:00
acrestyp.h ACPICA: Update ACPICA copyrights to 2013 2013-01-25 13:30:47 +01:00
actbl.h ACPICA: Back port and refine validation of the XSDT root table. 2014-01-08 15:31:36 +01:00
actbl1.h ACPICA: Add helper macros to extract bus/segment numbers from HEST table. 2014-01-08 15:31:37 +01:00
actbl2.h ACPICA: Tables: Add full support for the DBG2 table. 2014-01-08 15:31:36 +01:00
actbl3.h ACPICA: Tables: Add full support for the PCCT table, update table definition. 2014-01-08 15:31:37 +01:00
actypes.h ACPICA: Remove unused ACPI_FREE_BUFFER macro. No functional change. 2014-01-08 15:31:36 +01:00
apei.h module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
button.h
ghes.h ACPI, CPER: Update cper info 2013-10-21 15:12:00 -07:00
hed.h ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
pdc_intel.h
processor.h ACPI / processor: Do not request ACPI cpufreq module directly 2013-10-30 00:00:30 +01:00
reboot.h
video.h Revert "ACPI / video / i915: No ACPI backlight if firmware expects Windows 8" 2013-07-26 14:59:20 +02:00