Hello, Recently, I test the cpu hot add and remove function. It is ok for cpu hot add. but it is failure on cpu hot remove . If I modify the source code(Please see the following patch content). It is successful on cpu hot remove. patch content: --- linux-2.6.39.3_modify/drivers/acpi/processor_driver.c 2011-07-25 09:11:51.000000000 +0800 +++ linux-2.6.39.3/drivers/acpi/processor_driver.c 2011-07-09 14:16:06.000000000 +0800 @@ -677,11 +677,6 @@ "Driver data is NULL, dropping EJECT\n"); return; } - /*The alternative way of modify is add the following code: - kobject_uevent(&device->dev.kobj, KOBJ_OFFLINE); - */ - /*async execute the acip_bus_hot_remove_device*/ - acpi_os_hotplug_execute(acpi_bus_hot_remove_device, handle); break; default: ACPI_DEBUG_PRINT((ACPI_DB_INFO, diff -u -r linux-2.6.39.3_modify/drivers/acpi/scan.c linux-2.6.39.3/drivers/acpi/scan.c --- linux-2.6.39.3_modify/drivers/acpi/scan.c 2011-07-20 15:28:52.000000000 +0800 +++ linux-2.6.39.3/drivers/acpi/scan.c 2011-07-09 14:16:06.000000000 +0800 @@ -83,7 +83,7 @@ } static DEVICE_ATTR(modalias, 0444, acpi_device_modalias_show, NULL); - void acpi_bus_hot_remove_device(void *context) +static void acpi_bus_hot_remove_device(void *context) { struct acpi_device *device; acpi_handle handle = context; diff -u -r linux-2.6.39.3_modify/include/acpi/acpi_bus.h linux-2.6.39.3/include/acpi/acpi_bus.h --- linux-2.6.39.3_modify/include/acpi/acpi_bus.h 2011-07-20 15:30:04.000000000 +0800 +++ linux-2.6.39.3/include/acpi/acpi_bus.h 2011-07-09 14:16:06.000000000 +0800 @@ -342,7 +342,7 @@ const struct acpi_device_id *ids); int acpi_create_dir(struct acpi_device *); void acpi_remove_dir(struct acpi_device *); -void acpi_bus_hot_remove_device(void *context); + /* * Bind physical devices with ACPI devices */ Jason.shen 2011-07-25 -- 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