xen_machine_pv: do not create a dummy CPU in machine->init
This fixes a regression introduced by:
commit 62fc403f11
Author: Igor Mammedov <imammedo@redhat.com>
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.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
CC: imammedo@redhat.com
CC: qemu-stable@nongnu.org
This commit is contained in:
parent
a7d4207d37
commit
58ee9b0ae0
|
@ -23,7 +23,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "hw/hw.h"
|
#include "hw/hw.h"
|
||||||
#include "hw/i386/pc.h"
|
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
#include "hw/xen/xen_backend.h"
|
#include "hw/xen/xen_backend.h"
|
||||||
#include "xen_domainbuild.h"
|
#include "xen_domainbuild.h"
|
||||||
|
@ -31,27 +30,12 @@
|
||||||
|
|
||||||
static void xen_init_pv(QEMUMachineInitArgs *args)
|
static void xen_init_pv(QEMUMachineInitArgs *args)
|
||||||
{
|
{
|
||||||
const char *cpu_model = args->cpu_model;
|
|
||||||
const char *kernel_filename = args->kernel_filename;
|
const char *kernel_filename = args->kernel_filename;
|
||||||
const char *kernel_cmdline = args->kernel_cmdline;
|
const char *kernel_cmdline = args->kernel_cmdline;
|
||||||
const char *initrd_filename = args->initrd_filename;
|
const char *initrd_filename = args->initrd_filename;
|
||||||
X86CPU *cpu;
|
|
||||||
CPUState *cs;
|
|
||||||
DriveInfo *dinfo;
|
DriveInfo *dinfo;
|
||||||
int i;
|
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 */
|
/* Initialize backend core & drivers */
|
||||||
if (xen_be_init() != 0) {
|
if (xen_be_init() != 0) {
|
||||||
fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);
|
fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);
|
||||||
|
|
Loading…
Reference in New Issue