ACPI / memhotplug: Bind removable memory blocks to ACPI device nodes
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 7 May 2013 22:29:49 +0000 (00:29 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 12 May 2013 12:14:38 +0000 (14:14 +0200)
commite2ff39400d81233374e780b133496a2296643d7d
tree6f96f82ebc9474652a32e7fff8f8d9eb7184eb56
parentac212b6980d8d5eda705864fc5a8ecddc6d6eacc
ACPI / memhotplug: Bind removable memory blocks to ACPI device nodes

During ACPI memory hotplug configuration bind memory blocks residing
in modules removable through the standard ACPI mechanism to struct
acpi_device objects associated with ACPI namespace objects
representing those modules.  Accordingly, unbind those memory blocks
from the struct acpi_device objects when the memory modules in
question are being removed.

When "offline" operation for devices representing memory blocks is
introduced, this will allow the ACPI core's device hot-remove code to
use it to carry out remove_memory() for those memory blocks and check
the results of that before it actually removes the modules holding
them from the system.

Since walk_memory_range() is used for accessing all memory blocks
corresponding to a given ACPI namespace object, it is exported from
memory_hotplug.c so that the code in acpi_memhotplug.c can use it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Vasilis Liaskovitis <vasilis.liaskovitis@profitbricks.com>
Reviewed-by: Toshi Kani <toshi.kani@hp.com>
drivers/acpi/acpi_memhotplug.c
include/linux/memory_hotplug.h
mm/memory_hotplug.c