On Tue, Apr 10, 2012 at 4:21 PM, Toshi Kani <toshi.kani@xxxxxx> wrote: > Changed acpi_processor_hotplug_notify() to call ACPI _OST method > when ACPI-based CPU hotplug operation completed. > > Signed-off-by: Toshi Kani <toshi.kani@xxxxxx> > --- > drivers/acpi/processor_driver.c | 28 ++++++++++++++++++++-------- > 1 files changed, 20 insertions(+), 8 deletions(-) > > diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c > index 0734086..5d9b5a8 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"); You didn't add this problem, but since you're touching the code, I'll point it out. This message will look to the user like: ACPI: Unable to add the device which is useless. The user has no idea what device we're talking about or why we can't add it, so he can't *do* anything with the message. Almost every printk of a constant string has this problem. Using dev_err() instead of printk() would help a lot, as would including the error code (result). Of course, this would be a separate patch that would update all the messages in the driver at the same time. > 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_ost(handle, event, ost_code, NULL); > return; > } > > -- > 1.7.7.6 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html