On Wed, Oct 10, 2012 at 16:40:59 +0100, Daniel P. Berrange wrote: > On Tue, Oct 09, 2012 at 02:13:27PM +0200, Jiri Denemark wrote: > > @@ -12072,6 +12079,9 @@ virDomainHostdevSourceFormat(virBufferPtr buf, > > policy = virDomainStartupPolicyTypeToString(def->startupPolicy); > > virBufferAsprintf(buf, " startupPolicy='%s'", policy); > > } > > + if (def->source.subsys.u.usb.autoAddress && > > + (flags & VIR_DOMAIN_XML_MIGRATABLE)) > > + virBufferAddLit(buf, " autoAddress='yes'"); > > virBufferAddLit(buf, ">\n"); > > > > virBufferAdjustIndent(buf, 2); > > Do we really need to add a new attribute for this. IMHO if the user > has specified a vendor+product, then it is always auto-address, even > if they have also given a dev+address. We do need it. If both vendor/product and bus/dev are specified, the code doesn't try to find the device at different address. See the following code snippet from usbDeviceSearch: if ((flags & USB_DEVICE_FIND_BY_VENDOR) && (found_prod != product || found_vend != vendor)) continue; if (flags & USB_DEVICE_FIND_BY_BUS) { if (found_bus != bus || found_devno != devno) continue; found = true; } And it also make sense because if there are more devices with the same vendor/product id, we require bus/dev to be configured so that we can assign the right device and don't mess with other similar devices. However, if the address was autofilled by libvirt, we can try to look at other addresses if the device cannot be found at its original address (i.e., it was unplugged and plugged again). Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list