linux/drivers/acpi
Rafael J. Wysocki 7f28ddecce ACPI / hotplug: Refuse to hot-remove all objects with disabled hotplug
In theory, an ACPI device object may be the parent of another
device object whose hotplug is disabled by user space through its
scan handler.  In that case, the eject operation targeting the
parent should fail as though the parent's own hotplug was disabled,
but currently this is not the case, because acpi_scan_hot_remove()
doesn't check the disable/enable hotplug status of the children
of the top-most object passed to it.

To fix this, modify acpi_bus_offline_companions() to return an
error code if hotplug is disabled for the given device object.
[Also change the name of the function to acpi_bus_offline(),
because it is not only about companions any more, and change
the name of acpi_bus_online_companions() accordingly.]  Make
acpi_scan_hot_remove() propagate that error to its callers.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Toshi Kani <toshi.kani@hp.com>
2013-11-07 01:41:14 +01:00
..
acpica ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a field. 2013-09-06 15:39:59 +02:00
apei Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-04 11:07:04 -07:00
ac.c ACPI: Remove the old /proc/acpi/event interface 2013-07-15 13:56:36 +02:00
acpi_cmos_rtc.c ACPI: Add CMOS RTC Operation Region handler support 2013-06-27 21:35:37 +02:00
acpi_ipmi.c
acpi_lpss.c ACPI / LPSS: don't crash if a device has no MMIO resources 2013-09-02 12:59:40 +02:00
acpi_memhotplug.c ACPI / memhotplug: Use defined marco METHOD_NAME__STA 2013-10-10 02:32:33 +02:00
acpi_pad.c PTR_RET() is a weird name, and led to some confusing usage. We ended 2013-09-04 17:31:11 -07:00
acpi_platform.c ACPI / scan: Drop unnecessary label from acpi_create_platform_device() 2013-08-07 01:11:33 +02:00
acpi_processor.c ACPI / processor: Acquire writer lock to update CPU maps 2013-08-13 12:20:16 +02:00
battery.c Merge branch 'acpi-assorted' 2013-08-27 01:29:04 +02:00
bgrt.c acpi: bgrt: fix build error due to attribute change 2013-08-22 08:34:39 -07:00
blacklist.c ACPI: blacklist win8 OSI for buggy laptops 2013-08-25 21:31:12 +02:00
bus.c Merge branch 'acpi-assorted' 2013-08-27 01:29:04 +02:00
button.c ACPI: Remove the old /proc/acpi/event interface 2013-07-15 13:56:36 +02:00
cm_sbs.c
container.c Merge branch 'acpi-assorted' 2013-04-28 01:54:08 +02:00
custom_method.c The sweeping change is to make add_taint() explicitly indicate whether to disable 2013-02-25 15:41:43 -08:00
debugfs.c
device_pm.c ACPI / PM: Add state information to error message in acpi_device_set_power() 2013-08-03 21:13:22 +02:00
dock.c Merge branch 'acpi-assorted' 2013-08-27 01:29:04 +02:00
ec_sys.c ACPI / EC: access user space with get_user()/put_user() 2013-06-19 23:29:20 +02:00
ec.c Merge branch 'acpi-assorted' 2013-08-30 14:13:50 +02:00
event.c ACPI: Remove the old /proc/acpi/event interface 2013-07-15 13:56:36 +02:00
fan.c ACPI / PM: Use ACPI_STATE_D3_COLD instead of ACPI_STATE_D3 everywhere 2013-07-30 14:36:20 +02:00
glue.c ACPI / bind: Prefer device objects with _STA to those without it 2013-09-09 23:07:47 +02:00
hed.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
internal.h ACPI: Remove acpi_pci_slot_init() headers from internal.h 2013-11-07 01:40:50 +01:00
Kconfig Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2013-09-05 09:31:03 -07:00
Makefile i2c: move ACPI helpers into the core 2013-08-23 10:22:29 +02:00
numa.c ACPI / numa: Fix __init attribute location in slit_valid() 2013-08-13 12:35:42 +02:00
nvs.c
osl.c Merge branch 'acpi-assorted' 2013-08-27 01:29:04 +02:00
pci_irq.c PCI/ACPI: Don't cache _PRT, and don't associate them with bus numbers 2013-02-16 11:58:34 -07:00
pci_link.c ACPI: Set length even for TYPE_END_TAG acpi resource 2013-03-24 01:00:38 +01:00
pci_root.c Merge branch 'pci/misc' into next 2013-08-29 17:23:33 -06:00
pci_slot.c ACPI / PCI: Make bus registration and unregistration symmetric 2013-07-23 03:58:42 +02:00
power.c Merge branch 'acpi-pm' 2013-08-27 01:28:17 +02:00
proc.c ACPI / PM: Walk physical_node_list under physical_node_lock 2013-08-06 02:26:22 +02:00
processor_core.c Merge back earlier 'acpi-assorted' material 2013-08-14 23:22:45 +02:00
processor_driver.c Merge branch 'acpi-processor' 2013-08-27 01:29:24 +02:00
processor_idle.c acpi: delete __cpuinit usage from all acpi files 2013-07-14 19:36:58 -04:00
processor_perflib.c ACPI: introduce helper function acpi_has_method() 2013-07-15 01:33:10 +02:00
processor_thermal.c ACPI / processor: Remove acpi_processor_get_limit_info() 2013-08-13 12:11:22 +02:00
processor_throttling.c ACPI: suppress compiler warnings in processor_throttling.c 2013-03-25 00:05:48 +01:00
reboot.c
resource.c ACPI: introduce helper function acpi_has_method() 2013-07-15 01:33:10 +02:00
sbs.c ACPI: Remove the old /proc/acpi/event interface 2013-07-15 13:56:36 +02:00
sbshc.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
sbshc.h
scan.c ACPI / hotplug: Refuse to hot-remove all objects with disabled hotplug 2013-11-07 01:41:14 +01:00
sleep.c Merge branch 'acpi-assorted' 2013-08-27 01:29:04 +02:00
sleep.h
sysfs.c ACPI / hotplug: Use kobject_init_and_add() instead of _init() and _add() 2013-09-30 19:58:18 +02:00
tables.c
thermal.c Merge branch 'acpi-assorted' 2013-08-30 14:13:50 +02:00
utils.c ACPI: introduce two helper functions for _EJ0 and _LCK 2013-07-15 01:33:10 +02:00
video_detect.c Merge branch 'acpi-cleanup' 2013-08-27 01:25:28 +02:00
video.c Merge branch 'acpi-video' 2013-08-27 01:40:40 +02:00
wakeup.c