diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5cb5ac801f..1659e88478 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3474,6 +3474,26 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def, virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_S390) && def->memballoon) def->memballoon->model = VIR_DOMAIN_MEMBALLOON_MODEL_NONE; + if (addDefaultUSBMouse) { + bool hasUSBTablet = false; + size_t j; + + for (j = 0; j < def->ninputs; j++) { + if (def->inputs[j]->type == VIR_DOMAIN_INPUT_TYPE_TABLET && + def->inputs[j]->bus == VIR_DOMAIN_INPUT_BUS_USB) { + hasUSBTablet = true; + break; + } + } + + /* Historically, we have automatically added USB keyboard and + * mouse to some guests. While the former device is generally + * safe to have, adding the latter is undesiderable if a USB + * tablet is already present in the guest */ + if (hasUSBTablet) + addDefaultUSBMouse = false; + } + if (addDefaultUSBKBD && def->ngraphics > 0 && virDomainDefMaybeAddInput(def, diff --git a/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args b/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args index 1c6c25ed24..b81648f078 100644 --- a/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args @@ -37,7 +37,6 @@ addr=0x1 \ id=channel0,name=org.qemu.guest_agent.0 \ -device usb-tablet,id=input0,bus=usb.0,port=1 \ -device usb-kbd,id=input1,bus=usb.0,port=2 \ --device usb-mouse,id=input2,bus=usb.0,port=3 \ -vnc 127.0.0.1:0 \ -device VGA,id=video0,vgamem_mb=16,bus=pci.0,addr=0x7 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 \