Andreas Färber <afaer...@suse.de> writes: > Am 03.04.2014 18:56, schrieb Nikunj A Dadhania: >> The following commit caused the regression in qemu-system-ppc64 >> >> 7effdaa3: spapr: Fix return value of vga initialization >> d44229c5: Fix vga_interface_type for command line argument '-device VGA' >> >> Even when -nodefaults was provided, USB Keyboard and Mouse was added >> to the machine. This breaks libvirt which uses -nodefaults and adds >> the keyboard and mouse separately. The machine got 2 USB Keyboards >> and 2 USB Mouses. >> >> CC: Paolo Bonzini <pbonz...@redhat.com> >> CC: Mark Wu <wu...@linux.vnet.ibm.com> >> CC: Andreas Färber <afaer...@suse.de> >> Signed-off-by: Nikunj A Dadhania <nik...@linux.vnet.ibm.com> >> --- >> hw/ppc/spapr.c | 6 +++++- >> include/sysemu/sysemu.h | 1 + >> vl.c | 10 ++++++++-- >> 3 files changed, 14 insertions(+), 3 deletions(-) >> >> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c >> index a11e121..3095626 100644 >> --- a/hw/ppc/spapr.c >> +++ b/hw/ppc/spapr.c >> @@ -1328,7 +1328,11 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args) >> >> if (usb_enabled(spapr->has_graphics)) { >> pci_create_simple(phb->bus, -1, "pci-ohci"); >> - if (spapr->has_graphics) { >> + /* >> + * For VGA/VNC, by default add usb keyboard/mouse, if -nodefaults >> + * provided skip adding usb keyboard/mouse >> + */ >> + if (spapr->has_graphics && qemu_has_defaults()) { >> usbdevice_create("keyboard"); >> usbdevice_create("mouse"); >> } >> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h >> index ba5c7f8..8e90ad0 100644 >> --- a/include/sysemu/sysemu.h >> +++ b/include/sysemu/sysemu.h >> @@ -200,6 +200,7 @@ DeviceState *get_boot_device(uint32_t position); >> QemuOpts *qemu_get_machine_opts(void); >> >> bool usb_enabled(bool default_usb); >> +bool qemu_has_defaults(void); >> >> extern QemuOptsList qemu_legacy_drive_opts; >> extern QemuOptsList qemu_common_drive_opts; >> diff --git a/vl.c b/vl.c >> index 9975e5a..6bf37a2 100644 >> --- a/vl.c >> +++ b/vl.c >> @@ -977,8 +977,14 @@ static void parse_name(QemuOpts *opts) >> >> bool usb_enabled(bool default_usb) >> { >> - return qemu_opt_get_bool(qemu_get_machine_opts(), "usb", >> - has_defaults && default_usb); >> + return qemu_opt_get_bool(qemu_get_machine_opts(), "usb", >> + has_defaults && default_usb); >> +} >> + >> +bool qemu_has_defaults(void) >> +{ >> + fprintf(stderr, "has_d %d\n", has_defaults); > > Debugging leftover surely?
Yes, you were too fast, i have sent updated mail just now. Thanks Nikunj