USB: don't choose configs with no interfaces
This patch (as1372) fixes a bug in the routine that chooses the default configuration to install when a new USB device is detected. The algorithm is supposed to look for a config whose first interface is for a non-vendor-specific class. But the way it's currently written, it will also accept a config with no interfaces at all, which is not very useful. (Believe it or not, such things do exist.) Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Andrew Victor <avictor.za@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
c3baa19b0a
commit
62f9cfa3ec
|
@ -120,7 +120,7 @@ int usb_choose_configuration(struct usb_device *udev)
|
||||||
* than a vendor-specific driver. */
|
* than a vendor-specific driver. */
|
||||||
else if (udev->descriptor.bDeviceClass !=
|
else if (udev->descriptor.bDeviceClass !=
|
||||||
USB_CLASS_VENDOR_SPEC &&
|
USB_CLASS_VENDOR_SPEC &&
|
||||||
(!desc || desc->bInterfaceClass !=
|
(desc && desc->bInterfaceClass !=
|
||||||
USB_CLASS_VENDOR_SPEC)) {
|
USB_CLASS_VENDOR_SPEC)) {
|
||||||
best = c;
|
best = c;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue