From: Toshi Kani <toshi.k...@hp.com>

Changed acpi_processor_hotplug_notify() to call ACPI _OST method
when ACPI CPU hotplug operation has completed.

Signed-off-by: Toshi Kani <toshi.k...@hp.com>
Signed-off-by: Len Brown <len.br...@intel.com>
---
 drivers/acpi/processor_driver.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
index 0734086..971c454 100644
--- a/drivers/acpi/processor_driver.c
+++ b/drivers/acpi/processor_driver.c
@@ -701,9 +701,9 @@ static void acpi_processor_hotplug_notify(acpi_handle 
handle,
 {
        struct acpi_processor *pr;
        struct acpi_device *device = NULL;
+       u32 ost_code = ACPI_OST_SC_NON_SPECIFIC_FAILURE; /* default */
        int result;
 
-
        switch (event) {
        case ACPI_NOTIFY_BUS_CHECK:
        case ACPI_NOTIFY_DEVICE_CHECK:
@@ -715,14 +715,18 @@ static void acpi_processor_hotplug_notify(acpi_handle 
handle,
                if (!is_processor_present(handle))
                        break;
 
-               if (acpi_bus_get_device(handle, &device)) {
-                       result = acpi_processor_device_add(handle, &device);
-                       if (result)
-                               printk(KERN_ERR PREFIX
-                                           "Unable to add the device\n");
+               if (!acpi_bus_get_device(handle, &device))
+                       break;
+
+               result = acpi_processor_device_add(handle, &device);
+               if (result) {
+                       printk(KERN_ERR PREFIX "Unable to add the device\n");
                        break;
                }
+
+               ost_code = ACPI_OST_SC_SUCCESS;
                break;
+
        case ACPI_NOTIFY_EJECT_REQUEST:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
                                  "received ACPI_NOTIFY_EJECT_REQUEST\n"));
@@ -736,15 +740,23 @@ static void acpi_processor_hotplug_notify(acpi_handle 
handle,
                if (!pr) {
                        printk(KERN_ERR PREFIX
                                    "Driver data is NULL, dropping EJECT\n");
-                       return;
+                       break;
                }
+
+               /* REVISIT: update when eject is supported */
+               ost_code = ACPI_OST_SC_EJECT_NOT_SUPPORTED;
                break;
+
        default:
                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
                                  "Unsupported event [0x%x]\n", event));
-               break;
+
+               /* non-hotplug event; possibly handled by other handler */
+               return;
        }
 
+       /* Inform firmware that the hotplug operation has completed */
+       (void) acpi_evaluate_hotplug_ost(handle, event, ost_code, NULL);
        return;
 }
 
-- 
1.7.12.rc0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to