From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bKgDl-0006wL-P3 for qemu-devel@nongnu.org; Wed, 06 Jul 2016 02:22:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bKgDj-0004ai-R5 for qemu-devel@nongnu.org; Wed, 06 Jul 2016 02:22:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52398) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bKgDj-0004ad-Lj for qemu-devel@nongnu.org; Wed, 06 Jul 2016 02:22:03 -0400 From: Igor Mammedov Date: Wed, 6 Jul 2016 08:20:55 +0200 Message-Id: <1467786055-85835-20-git-send-email-imammedo@redhat.com> In-Reply-To: <1467786055-85835-1-git-send-email-imammedo@redhat.com> References: <1467786055-85835-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH v3 19/19] pc: make device_del CPU work for x86 CPUs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: pkrempa@redhat.com, ehabkost@redhat.com, mst@redhat.com, armbru@redhat.com, eduardo.otubo@profitbricks.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net ACPI subsystem already has all logic in place the only thing left to eject CPU is destroy it and ammend present CPUs counter in CMOS, do so. Signed-off-by: Igor Mammedov --- hw/i386/pc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 0f85b56..ca1953c 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1736,6 +1736,7 @@ static void pc_cpu_unplug_request_cb(HotplugHandler *hotplug_dev, static void pc_cpu_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { + CPUArchId *found_cpu; HotplugHandlerClass *hhc; Error *local_err = NULL; PCMachineState *pcms = PC_MACHINE(hotplug_dev); @@ -1747,13 +1748,11 @@ static void pc_cpu_unplug_cb(HotplugHandler *hotplug_dev, goto out; } - /* - * TODO: enable unplug once generic CPU remove bits land - * for now guest will be able to eject CPU ACPI wise but - * it will come back again on machine reset. - */ - /* object_unparent(OBJECT(dev)); */ + found_cpu = pc_find_cpu_slot(pcms, CPU(dev), NULL); + found_cpu->cpu = NULL; + object_unparent(OBJECT(dev)); + rtc_set_memory(pcms->rtc, 0x5f, rtc_get_memory(pcms->rtc, 0x5f) - 1); out: error_propagate(errp, local_err); } -- 2.7.0