On Tue, Sep 13, 2011 at 8:18 PM, canquan.shen <shencanquan@xxxxxxxxxx> wrote: > We run linux as a guest in Xen environment. When we used the xen tools > (xm vcpu-set <n>) to hot add and remove vcpu to and from the guest, we > encountered the failure on vcpu removal. We found the reason is that it > didn't go to really remove cpu in the cpu removal code path. > > This patch adds acpi_bus_trim in acpi_process_hotplug_notify to fix this > issue. With this patch, it works fine for us. > > Signed-off-by: Shen canquan <shencanquan@xxxxxxxxxx> > --- > drivers/acpi/processor_driver.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/drivers/acpi/processor_driver.c > b/drivers/acpi/processor_driver.c > index a4e0f1b..0856ef8 100644 > --- a/drivers/acpi/processor_driver.c > +++ b/drivers/acpi/processor_driver.c > @@ -677,6 +677,13 @@ static void acpi_processor_hotplug_notify(acpi_handle > handle, > "Driver data is NULL, dropping EJECT\n"); > return; > } > + ACPI_DEBUG_PRINT((ACPI_DB_INFO, > + "Hot-removing processor device %s\n", > + dev_name(&device->dev))); > + if (acpi_bus_trim(device, 1)) { > + printk(KERN_ERR "ACPI: Removing device failed!\n"); We can do better than that. Nobody ever looks at ACPI_DEBUG_PRINT info. u32 id; ... id = pr->id; if (acpi_bus_trim(device, 1)) printk(KERN_ERR PREFIX "Failed to remove CPU %d\n", id); (No "return" needed here. In fact, the "return" at the bottom of acpi_processor_hotplug_notify() is also superfluous. You could remove it at the same time.) -- 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