mirror of https://gitee.com/openkylin/qemu.git
usb-host-libusb: Configuration 0 may be a valid configuration
Quoting from: linux/Documentation/ABI/stable/sysfs-bus-usb: Note that some devices, in violation of the USB spec, have a configuration with a value equal to 0. Writing 0 to bConfigurationValue for these devices will install that configuration, rather then unconfigure the device. So don't compare the configuration value against 0 to check for unconfigured devices, instead check for a LIBUSB_ERROR_NOT_FOUND return from libusb_get_active_config_descriptor(). Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
5af35d7fec
commit
1294ca797c
|
@ -992,15 +992,14 @@ static int usb_host_claim_interfaces(USBHostDevice *s, int configuration)
|
|||
udev->ninterfaces = 0;
|
||||
udev->configuration = 0;
|
||||
|
||||
if (configuration == 0) {
|
||||
/* address state - ignore */
|
||||
return USB_RET_SUCCESS;
|
||||
}
|
||||
|
||||
usb_host_detach_kernel(s);
|
||||
|
||||
rc = libusb_get_active_config_descriptor(s->dev, &conf);
|
||||
if (rc != 0) {
|
||||
if (rc == LIBUSB_ERROR_NOT_FOUND) {
|
||||
/* address state - ignore */
|
||||
return USB_RET_SUCCESS;
|
||||
}
|
||||
return USB_RET_STALL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue