In initial device enumeration hotplug notification can be 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. Remove indentical call in spice_usb_device_manager_add_udev, which add devices under Windows. 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