ACPI / hotplug: Use device offline/online for graceful hot-removal
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 2 May 2013 22:26:16 +0000 (00:26 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 12 May 2013 12:14:24 +0000 (14:14 +0200)
commit683058e315f00a216fd6c79df4f63bc9945ca434
treee4b143220938ebb24a7bf72f286f275090b2afef
parent0902a9044fa5b7a0456ea4daacec2c2b3189ba8c
ACPI / hotplug: Use device offline/online for graceful hot-removal

Modify the generic ACPI hotplug code to be able to check if devices
scheduled for hot-removal may be gracefully removed from the system
using the device offline/online mechanism introduced previously.

Namely, make acpi_scan_hot_remove() handling device hot-removal call
device_offline() for all physical companions of the ACPI device nodes
involved in the operation and check the results.  If any of the
device_offline() calls fails, the function will not progress to the
removal phase (which cannot be aborted), unless its (new) force
argument is set (in case of a failing offline it will put the devices
offlined by it back online).

In support of 'forced' device hot-removal, add a new sysfs attribute
'force_remove' that will reside under /sys/firmware/acpi/hotplug/.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Toshi Kani <toshi.kani@hp.com>
Documentation/ABI/testing/sysfs-firmware-acpi
drivers/acpi/internal.h
drivers/acpi/scan.c
drivers/acpi/sysfs.c
include/acpi/acpi_bus.h