From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34756) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGTdA-0004FL-LL for qemu-devel@nongnu.org; Fri, 24 Jun 2016 12:06:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGTd8-0000ky-N4 for qemu-devel@nongnu.org; Fri, 24 Jun 2016 12:06:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51590) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGTd8-0000kr-Gz for qemu-devel@nongnu.org; Fri, 24 Jun 2016 12:06:54 -0400 From: Igor Mammedov Date: Fri, 24 Jun 2016 18:06:06 +0200 Message-Id: <1466784366-281935-19-git-send-email-imammedo@redhat.com> In-Reply-To: <1466784366-281935-1-git-send-email-imammedo@redhat.com> References: <1466784366-281935-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH v2 18/18] 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: pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mst@redhat.com, armbru@redhat.com, eduardo.otubo@profitbricks.com, eblake@redhat.com, pkrempa@redhat.com, marcel@redhat.com 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 f5124d5..296eebe 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); } -- 1.8.3.1