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
   */



Reply via email to