From: Guannan Ren Date: Tue, 26 Mar 2013 14:17:43 +0000 (+0800) Subject: conf: fix a failure when detaching a usb device X-Git-Tag: v1.0.4-rc2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a950f03e16dd958f821027aa5d396166163c3200;p=thirdparty%2Flibvirt.git conf: fix a failure when detaching a usb device #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. --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4cae0d3525..2b2f35c50a 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -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)