On Thu, Feb 13, 2014 at 04:48:21PM +0800, Li Zhang wrote: > @@ -12422,10 +12426,12 @@ virDomainDefParseXML(xmlDocPtr xml, > * 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) || > + (input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE || > + input->type == VIR_DOMAIN_INPUT_TYPE_KBD)) || > (STRNEQ(def->os.type, "hvm") && > input->bus == VIR_DOMAIN_INPUT_BUS_XEN && > - input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE)) { > + (input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE || > + input->type == VIR_DOMAIN_INPUT_TYPE_KBD))) { > virDomainInputDefFree(input); > continue; Later on in this function there is /* If graphics are enabled, there's an implicit PS2 mouse */ if (def->ngraphics > 0) { virDomainInputDefPtr input; if (VIR_ALLOC(input) < 0) { goto error; } if (STREQ(def->os.type, "hvm")) { input->type = VIR_DOMAIN_INPUT_TYPE_MOUSE; input->bus = VIR_DOMAIN_INPUT_BUS_PS2; } else { input->type = VIR_DOMAIN_INPUT_TYPE_MOUSE; input->bus = VIR_DOMAIN_INPUT_BUS_XEN; } if (VIR_REALLOC_N(def->inputs, def->ninputs + 1) < 0) { virDomainInputDefFree(input); goto error; } def->inputs[def->ninputs] = input; def->ninputs++; } which needs to take care of keyboards too now. And some more similar logic in virDomainDefFormatInternal which needs updating Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list