Hi ping fan,
Your patch is similar with my patch, my patch name is "acpi: Fix CPU
hot removal problem".
Thanks.
Canquan.Shen
2011-10-19
On 2011/10/19 10:53, pingf...@linux.vnet.ibm.com wrote:
From: Liu Ping Fan<pingf...@linux.vnet.ibm.com>
Call the remove handler for ACPI_NOTIFY_EJECT_REQUEST
Signed-off-by: Liu Ping Fan<pingf...@linux.vnet.ibm.com>
---
drivers/acpi/bus.c | 2 +-
drivers/acpi/scan.c | 2 +-
include/acpi/acpi_bus.h | 2 ++
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 437ddbf..d06ec6d 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -764,7 +764,7 @@ static void acpi_bus_notify(acpi_handle handle, u32 type,
void *data)
break;
case ACPI_NOTIFY_EJECT_REQUEST:
- /* TBD */
+ acpi_os_hotplug_execute(acpi_bus_hot_remove_device, handle);
break;
case ACPI_NOTIFY_DEVICE_CHECK_LIGHT:
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 449c556..3b97b61 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -83,7 +83,7 @@ acpi_device_modalias_show(struct device *dev, struct
device_attribute *attr, cha
}
static DEVICE_ATTR(modalias, 0444, acpi_device_modalias_show, NULL);
-static void acpi_bus_hot_remove_device(void *context)
+void acpi_bus_hot_remove_device(void *context)
{
struct acpi_device *device;
acpi_handle handle = context;
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 6cd5b64..b19c09d 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -310,6 +310,8 @@ extern int unregister_acpi_notifier(struct notifier_block
*);
extern int register_acpi_bus_notifier(struct notifier_block *nb);
extern void unregister_acpi_bus_notifier(struct notifier_block *nb);
+extern void acpi_bus_hot_remove_device(void *context);
+
/*
* External Functions
*/