From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51088) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVkxK-0008HM-Er for qemu-devel@nongnu.org; Thu, 03 Apr 2014 12:57:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WVkwo-00085r-40 for qemu-devel@nongnu.org; Thu, 03 Apr 2014 12:57:34 -0400 Received: from e23smtp03.au.ibm.com ([202.81.31.145]:34970) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVkwn-00082Z-9d for qemu-devel@nongnu.org; Thu, 03 Apr 2014 12:57:02 -0400 Received: from /spool/local by e23smtp03.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 4 Apr 2014 02:56:53 +1000 From: Nikunj A Dadhania Date: Thu, 3 Apr 2014 22:26:14 +0530 Message-Id: <1396544174-8904-1-git-send-email-nikunj@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH] spapr: skip adding usb keyboard/mouse in case of -nodefaults List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, agraf@suse.com Cc: aik@au1.ibm.com, Nikunj A Dadhania , Mark Wu , qemu-ppc@nongnu.org, Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= 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 CC: Mark Wu CC: Andreas Färber Signed-off-by: Nikunj A Dadhania --- 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); + return has_defaults; } #ifndef _WIN32 -- 1.8.3.1