On Mon, Feb 01, 2010 at 06:39:42PM +0000, Daniel P. Berrange wrote: > When attaching a USB host device based on vendor/product, libvirt > will resolve the vendor/product into a device/bus pair. This means > that when printing XML we should allow device/bus info to be printed > at any time if present > > * src/conf/domain_conf.c, docs/schemas/domain.rng: Allow USB device > bus info alongside vendor/product > --- > docs/schemas/domain.rng | 7 ++++++- > src/conf/domain_conf.c | 5 +++-- > 2 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng > index 827ff6f..bb6d00d 100644 > --- a/docs/schemas/domain.rng > +++ b/docs/schemas/domain.rng > @@ -1179,7 +1179,12 @@ > <group> > <element name="source"> > <choice> > - <ref name="usbproduct"/> > + <group> > + <ref name="usbproduct"/> > + <optional> > + <ref name="usbaddress"/> > + </optional> > + </group> > <ref name="usbaddress"/> > <element name="address"> > <ref name="pciaddress"/> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index b434fc5..766993c 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -5244,11 +5244,12 @@ virDomainHostdevDefFormat(virConnectPtr conn, > def->source.subsys.u.usb.vendor); > virBufferVSprintf(buf, " <product id='0x%.4x'/>\n", > def->source.subsys.u.usb.product); > - } else { > + } > + if (def->source.subsys.u.usb.bus || > + def->source.subsys.u.usb.device) > virBufferVSprintf(buf, " <address bus='%d' device='%d'/>\n", > def->source.subsys.u.usb.bus, > def->source.subsys.u.usb.device); > - } > } else if (def->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { > virBufferVSprintf(buf, " <address domain='0x%.4x' bus='0x%.2x' slot='0x%.2x' function='0x%.1x'/>\n", > def->source.subsys.u.pci.domain, ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list