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