From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52739) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uheeq-00030Z-Hb for qemu-devel@nongnu.org; Wed, 29 May 2013 07:35:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uheel-0001qk-UF for qemu-devel@nongnu.org; Wed, 29 May 2013 07:35:08 -0400 From: Stefano Stabellini Date: Wed, 29 May 2013 12:34:31 +0100 Message-ID: <1369827271-20921-3-git-send-email-stefano.stabellini@eu.citrix.com> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH v2 3/3] xen_machine_pv: do not create a dummy CPU in machine->init List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, xen-devel@lists.xensource.com, Stefano Stabellini , qemu-stable@nongnu.org, imammedo@redhat.com, anthony.perard@citrix.com, pbonzini@redhat.com, afaerber@suse.de This fixes a regression introduced by: commit 62fc403f11523169eb4264de31279745f48e3ecc Author: Igor Mammedov Date: Mon Apr 29 18:54:13 2013 +0200 target-i386: Attach ICC bus to CPU on its creation X86CPU should have parent bus so it could provide bus for child APIC. The commit makes it mandatory to pass a valid ICC bus to cpu_x86_create, but cpu_x86_init just passes NULL to it. xen_machine_pv uses cpu_x86_init, therefore it has been broken. This patch fixes the problem by removing the dummy CPU creation altogether from xen_init_pv, relying on the fact that QEMU can now cope with a machine without an emulated CPU. This fix should be backported to QEMU 1.5. Signed-off-by: Stefano Stabellini CC: imammedo@redhat.com CC: qemu-stable@nongnu.org --- hw/i386/xen_machine_pv.c | 16 ---------------- 1 files changed, 0 insertions(+), 16 deletions(-) diff --git a/hw/i386/xen_machine_pv.c b/hw/i386/xen_machine_pv.c index f829a52..9f2e291 100644 --- a/hw/i386/xen_machine_pv.c +++ b/hw/i386/xen_machine_pv.c @@ -23,7 +23,6 @@ */ #include "hw/hw.h" -#include "hw/i386/pc.h" #include "hw/boards.h" #include "hw/xen/xen_backend.h" #include "xen_domainbuild.h" @@ -31,27 +30,12 @@ static void xen_init_pv(QEMUMachineInitArgs *args) { - const char *cpu_model = args->cpu_model; const char *kernel_filename = args->kernel_filename; const char *kernel_cmdline = args->kernel_cmdline; const char *initrd_filename = args->initrd_filename; - X86CPU *cpu; - CPUState *cs; DriveInfo *dinfo; int i; - /* Initialize a dummy CPU */ - if (cpu_model == NULL) { -#ifdef TARGET_X86_64 - cpu_model = "qemu64"; -#else - cpu_model = "qemu32"; -#endif - } - cpu = cpu_x86_init(cpu_model); - cs = CPU(cpu); - cs->halted = 1; - /* Initialize backend core & drivers */ if (xen_be_init() != 0) { fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__); -- 1.7.2.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 3/3] xen_machine_pv: do not create a dummy CPU in machine->init Date: Wed, 29 May 2013 12:34:31 +0100 Message-ID: <1369827271-20921-3-git-send-email-stefano.stabellini@eu.citrix.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, xen-devel@lists.xensource.com, Stefano Stabellini , qemu-stable@nongnu.org, imammedo@redhat.com, anthony.perard@citrix.com, pbonzini@redhat.com, afaerber@suse.de List-Id: xen-devel@lists.xenproject.org This fixes a regression introduced by: commit 62fc403f11523169eb4264de31279745f48e3ecc Author: Igor Mammedov Date: Mon Apr 29 18:54:13 2013 +0200 target-i386: Attach ICC bus to CPU on its creation X86CPU should have parent bus so it could provide bus for child APIC. The commit makes it mandatory to pass a valid ICC bus to cpu_x86_create, but cpu_x86_init just passes NULL to it. xen_machine_pv uses cpu_x86_init, therefore it has been broken. This patch fixes the problem by removing the dummy CPU creation altogether from xen_init_pv, relying on the fact that QEMU can now cope with a machine without an emulated CPU. This fix should be backported to QEMU 1.5. Signed-off-by: Stefano Stabellini CC: imammedo@redhat.com CC: qemu-stable@nongnu.org --- hw/i386/xen_machine_pv.c | 16 ---------------- 1 files changed, 0 insertions(+), 16 deletions(-) diff --git a/hw/i386/xen_machine_pv.c b/hw/i386/xen_machine_pv.c index f829a52..9f2e291 100644 --- a/hw/i386/xen_machine_pv.c +++ b/hw/i386/xen_machine_pv.c @@ -23,7 +23,6 @@ */ #include "hw/hw.h" -#include "hw/i386/pc.h" #include "hw/boards.h" #include "hw/xen/xen_backend.h" #include "xen_domainbuild.h" @@ -31,27 +30,12 @@ static void xen_init_pv(QEMUMachineInitArgs *args) { - const char *cpu_model = args->cpu_model; const char *kernel_filename = args->kernel_filename; const char *kernel_cmdline = args->kernel_cmdline; const char *initrd_filename = args->initrd_filename; - X86CPU *cpu; - CPUState *cs; DriveInfo *dinfo; int i; - /* Initialize a dummy CPU */ - if (cpu_model == NULL) { -#ifdef TARGET_X86_64 - cpu_model = "qemu64"; -#else - cpu_model = "qemu32"; -#endif - } - cpu = cpu_x86_init(cpu_model); - cs = CPU(cpu); - cs->halted = 1; - /* Initialize backend core & drivers */ if (xen_be_init() != 0) { fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__); -- 1.7.2.5