]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: fix a failure when detaching a usb device
authorGuannan Ren <gren@redhat.com>
Tue, 26 Mar 2013 14:17:43 +0000 (22:17 +0800)
committerGuannan Ren <gren@redhat.com>
Wed, 27 Mar 2013 02:38:08 +0000 (10:38 +0800)
 #virsh detach-device $guest usb.xml
 error: Failed to detach device from usb2.xml
 error: operation failed: host usb device vendor=0x0951 \
 product=0x1625 not found

This regresstion is due to a typo in matching function. The first
argument is always the usb device that we are checking for. If the
usb xml file provided by user contains bus and device info, we try
to search it by them, otherwise, we use vendor and product info.

The bug occurred only when detaching a usb device with no bus and
device info provided in the usb xml file.

src/conf/domain_conf.c

index 4cae0d3525cd76c88a7ecbe581c351c6d81ec5cf..2b2f35c50ac419aa7473b6934eb351576d3a9a5d 100644 (file)
@@ -8541,7 +8541,7 @@ static int
 virDomainHostdevMatchSubsysUSB(virDomainHostdevDefPtr a,
                                virDomainHostdevDefPtr b)
 {
-    if (b->source.subsys.u.usb.bus && b->source.subsys.u.usb.device) {
+    if (a->source.subsys.u.usb.bus && a->source.subsys.u.usb.device) {
         /* specified by bus location on host */
         if (a->source.subsys.u.usb.bus == b->source.subsys.u.usb.bus &&
             a->source.subsys.u.usb.device == b->source.subsys.u.usb.device)