[libvirt] [PATCH v2 3/3] qemu: search usb device accurately to improve usb device hotplug

Eric Blake eblake at redhat.com
Wed May 2 17:31:46 UTC 2012


On 05/01/2012 02:16 AM, Guannan Ren wrote:
> One usb device could be allowed to hotplug in at a time. If user
> give a xml as follows. Probably there are two usb devices avaiable

s/avaiable/available/

> but with different value of "bus, device"
> 
> we give a error to let user use <address> to specify the desired one.
> 
> <hostdev mode='subsystem' type='usb' managed='yes'>
>   <source>
>     <vendor id='0x15e1'/>
>     <product id='0x2007'/>
>   </source>
> </hostdev>
> ---
>  src/qemu/qemu_hotplug.c |   68 +++++++++++++++++++++++++++++++++++++---------
>  1 files changed, 54 insertions(+), 14 deletions(-)
> 
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index 7cf7b90..15693a0 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -1121,6 +1121,9 @@ int qemuDomainAttachHostDevice(struct qemud_driver *driver,
>                                 virDomainObjPtr vm,
>                                 virDomainHostdevDefPtr hostdev)
>  {
> +    usbDeviceList *list;
> +    usbDevice * usb = NULL;

Style: no space after *.

> +    if (!(list = usbDeviceListNew()))
> +        goto cleanup;

virReportOOMError()

> +
> +    if (hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) {
> +        unsigned vendor = hostdev->source.subsys.u.usb.vendor;
> +        unsigned product = hostdev->source.subsys.u.usb.product;
> +        unsigned bus = hostdev->source.subsys.u.usb.bus;
> +        unsigned device = hostdev->source.subsys.u.usb.device;
> +
> +        if (vendor && bus) {

Same question as in 2/3 about valid values for bus.


> +            if (usbDeviceListCount(devs) > 1) {
> +                qemuReportError(VIR_ERR_XML_ERROR,
> +                                _("multiple USB deivces %x:%x, "

s/deivces/devices/

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120502/1d0f0fd9/attachment-0001.sig>


More information about the libvir-list mailing list