This patch fixes the appearance of a PS/2 mouse in the list of
input devices of non-x86 guests.
---
src/conf/domain_conf.c | 48 ++++++++++++++++++++++++++++--------------------
1 file changed, 28 insertions(+), 20 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 4938740..fb088d5 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -12114,14 +12114,16 @@ virDomainDefParseXML(xmlDocPtr xml,
/* With QEMU / KVM / Xen graphics, mouse + PS/2 is implicit
* with graphics, so don't store it.
* XXX will this be true for other virt types ? */
- if ((STREQ(def->os.type, "hvm") &&
- input->bus == VIR_DOMAIN_INPUT_BUS_PS2 &&
- input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE) ||
- (STRNEQ(def->os.type, "hvm") &&
- input->bus == VIR_DOMAIN_INPUT_BUS_XEN &&
- input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE)) {
- virDomainInputDefFree(input);
- continue;
+ if (def->os.arch == VIR_ARCH_I686 || def->os.arch == VIR_ARCH_X86_64) {
+ if ((STREQ(def->os.type, "hvm") &&
+ input->bus == VIR_DOMAIN_INPUT_BUS_PS2 &&
+ input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE) ||
+ (STRNEQ(def->os.type, "hvm") &&
+ input->bus == VIR_DOMAIN_INPUT_BUS_XEN &&
+ input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE)) {
+ virDomainInputDefFree(input);
+ continue;
+ }
}
def->inputs[def->ninputs++] = input;
@@ -12145,8 +12147,10 @@ virDomainDefParseXML(xmlDocPtr xml,
}
VIR_FREE(nodes);
- /* If graphics are enabled, there's an implicit PS2 mouse */
- if (def->ngraphics > 0) {
+ /* If graphics are enabled, there's an implicit PS2 mouse
+ * in the x86 architecture */
+ if (def->ngraphics > 0 && (def->os.arch == VIR_ARCH_I686 ||
+ def->os.arch == VIR_ARCH_X86_64)) {
virDomainInputDefPtr input;
if (VIR_ALLOC(input) < 0) {
@@ -17056,16 +17060,20 @@ virDomainDefFormatInternal(virDomainDefPtr def,
}
if (def->ngraphics > 0) {
- /* If graphics is enabled, add the implicit mouse */
- virDomainInputDef autoInput = {
- VIR_DOMAIN_INPUT_TYPE_MOUSE,
- STREQ(def->os.type, "hvm") ?
- VIR_DOMAIN_INPUT_BUS_PS2 : VIR_DOMAIN_INPUT_BUS_XEN,
- { .alias = NULL },
- };
-
- if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
- goto error;
+ /* If graphics is enabled, add the implicit mouse in the x86
+ * architecture */
+
+ if (def->os.arch == VIR_ARCH_I686 || def->os.arch == VIR_ARCH_X86_64) {
+ virDomainInputDef autoInput = {
+ VIR_DOMAIN_INPUT_TYPE_MOUSE,
+ STREQ(def->os.type, "hvm") ?
+ VIR_DOMAIN_INPUT_BUS_PS2 : VIR_DOMAIN_INPUT_BUS_XEN,
+ { .alias = NULL },
+ };
+
+ if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
+ goto error;
+ }
for (n = 0; n < def->ngraphics; n++)
if (virDomainGraphicsDefFormat(buf, def->graphics[n], flags) < 0)
--
1.8.1.4