pc, Disable vmport initialisation with Xen.
This is because there is not synchronisation of the vcpu register between Xen and QEMU, so vmport can't work properly. This patch introduces no_vmport parameter to pc_basic_device_init. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
29d3ccde82
commit
1611977c3d
11
hw/pc.c
11
hw/pc.c
|
@ -1082,7 +1082,8 @@ static void cpu_request_exit(void *opaque, int irq, int level)
|
||||||
}
|
}
|
||||||
|
|
||||||
void pc_basic_device_init(qemu_irq *isa_irq,
|
void pc_basic_device_init(qemu_irq *isa_irq,
|
||||||
ISADevice **rtc_state)
|
ISADevice **rtc_state,
|
||||||
|
bool no_vmport)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
DriveInfo *fd[MAX_FD];
|
DriveInfo *fd[MAX_FD];
|
||||||
|
@ -1127,8 +1128,12 @@ void pc_basic_device_init(qemu_irq *isa_irq,
|
||||||
a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2);
|
a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2);
|
||||||
i8042 = isa_create_simple("i8042");
|
i8042 = isa_create_simple("i8042");
|
||||||
i8042_setup_a20_line(i8042, &a20_line[0]);
|
i8042_setup_a20_line(i8042, &a20_line[0]);
|
||||||
vmport_init();
|
if (!no_vmport) {
|
||||||
vmmouse = isa_try_create("vmmouse");
|
vmport_init();
|
||||||
|
vmmouse = isa_try_create("vmmouse");
|
||||||
|
} else {
|
||||||
|
vmmouse = NULL;
|
||||||
|
}
|
||||||
if (vmmouse) {
|
if (vmmouse) {
|
||||||
qdev_prop_set_ptr(&vmmouse->qdev, "ps2_mouse", i8042);
|
qdev_prop_set_ptr(&vmmouse->qdev, "ps2_mouse", i8042);
|
||||||
qdev_init_nofail(&vmmouse->qdev);
|
qdev_init_nofail(&vmmouse->qdev);
|
||||||
|
|
3
hw/pc.h
3
hw/pc.h
|
@ -137,7 +137,8 @@ void pc_memory_init(const char *kernel_filename,
|
||||||
qemu_irq *pc_allocate_cpu_irq(void);
|
qemu_irq *pc_allocate_cpu_irq(void);
|
||||||
void pc_vga_init(PCIBus *pci_bus);
|
void pc_vga_init(PCIBus *pci_bus);
|
||||||
void pc_basic_device_init(qemu_irq *isa_irq,
|
void pc_basic_device_init(qemu_irq *isa_irq,
|
||||||
ISADevice **rtc_state);
|
ISADevice **rtc_state,
|
||||||
|
bool no_vmport);
|
||||||
void pc_init_ne2k_isa(NICInfo *nd);
|
void pc_init_ne2k_isa(NICInfo *nd);
|
||||||
void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
|
void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
|
||||||
const char *boot_device,
|
const char *boot_device,
|
||||||
|
|
|
@ -133,7 +133,7 @@ static void pc_init1(ram_addr_t ram_size,
|
||||||
pc_vga_init(pci_enabled? pci_bus: NULL);
|
pc_vga_init(pci_enabled? pci_bus: NULL);
|
||||||
|
|
||||||
/* init basic PC hardware */
|
/* init basic PC hardware */
|
||||||
pc_basic_device_init(isa_irq, &rtc_state);
|
pc_basic_device_init(isa_irq, &rtc_state, xen_enabled());
|
||||||
|
|
||||||
for(i = 0; i < nb_nics; i++) {
|
for(i = 0; i < nb_nics; i++) {
|
||||||
NICInfo *nd = &nd_table[i];
|
NICInfo *nd = &nd_table[i];
|
||||||
|
|
Loading…
Reference in New Issue