Re: [spice-gtk 04/13] usb-redir: do not add device if one with the same bus:addr exists

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 10, 2019 at 04:46:03PM +0200, Yuri Benditovich wrote:
> In initial device enumeration hotplug notification can be

"In initial device enumeration, hotplug notification..."

> called twice with the same libusb device. For details, see
> http://libusb.sourceforge.net/api-1.0/group__libusb__hotplug.html#ga00e0c69ddf1fb1b6774dc918192e8dc7
> Filter out devices that already present in the list.

"This commit filters out the devices that are already known to
SpiceUsbDeviceManager."

> Remove indentical call in spice_usb_device_manager_add_udev,
> which add devices under Windows.

"It also removes the identical call ..., which adds devices..."

Acked-by: Christophe Fergeau <cfergeau@xxxxxxxxxx>


> 
> Signed-off-by: Yuri Benditovich <yuri.benditovich@xxxxxxxxxx>
> ---
>  src/usb-device-manager.c | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c
> index debba4d..5cf7ebb 100644
> --- a/src/usb-device-manager.c
> +++ b/src/usb-device-manager.c
> @@ -962,6 +962,17 @@ static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager  *self,
>      if (desc.bDeviceClass == LIBUSB_CLASS_HUB)
>          return;
>  
> +    if (spice_usb_device_manager_find_device(self,
> +                                    libusb_get_bus_number(libdev),
> +                                    libusb_get_device_address(libdev))) {
> +        SPICE_DEBUG("device not added %d:%d %04x:%04x",
> +                    libusb_get_bus_number(libdev),
> +                    libusb_get_device_address(libdev),
> +                    desc.idVendor,
> +                    desc.idProduct);
> +        return;
> +    }
> +
>      device = (SpiceUsbDevice*)spice_usb_device_new(libdev);
>      if (!device)
>          return;
> @@ -1025,7 +1036,6 @@ static void spice_usb_device_manager_add_udev(SpiceUsbDeviceManager  *self,
>  {
>      SpiceUsbDeviceManagerPrivate *priv = self->priv;
>      libusb_device *libdev = NULL, **dev_list = NULL;
> -    SpiceUsbDevice *device;
>      const gchar *devtype;
>      int i, bus, address;
>  
> @@ -1039,16 +1049,6 @@ static void spice_usb_device_manager_add_udev(SpiceUsbDeviceManager  *self,
>          return;
>      }
>  
> -    device = spice_usb_device_manager_find_device(self, bus, address);
> -    if (device) {
> -        SPICE_DEBUG("USB device 0x%04x:0x%04x at %d.%d already exists, ignored",
> -                    spice_usb_device_get_vid(device),
> -                    spice_usb_device_get_pid(device),
> -                    spice_usb_device_get_busnum(device),
> -                    spice_usb_device_get_devaddr(device));
> -        return;
> -    }
> -
>      if (priv->coldplug_list)
>          dev_list = priv->coldplug_list;
>      else
> -- 
> 2.17.1
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/spice-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]