[Spice-devel] [spice-gtk 04/13] usb-redir: do not add device if one with the same bus:addr exists
Christophe Fergeau
cfergeau at redhat.com
Mon Mar 11 17:16:24 UTC 2019
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 at redhat.com>
>
> Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
> ---
> 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20190311/4e8ea8e5/attachment.sig>
More information about the Spice-devel
mailing list