USB core: don't match interface descriptors for vendor-specific devices
authorAlan Stern <stern@rowland.harvard.edu>
Wed, 18 Oct 2006 20:41:51 +0000 (16:41 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 1 Dec 2006 22:23:27 +0000 (14:23 -0800)
commit93c8bf45e083b89dffe3a708363c15c1b220c723
treefa9b05fdfdc9ba2d75a2fee9729b8a553b23c678
parent6d8fc4d28deaf828606c19fb743fbe94aeab4caf
USB core: don't match interface descriptors for vendor-specific devices

This patch (as804) makes USB driver matching ignore the interface
class, subclass, and protocol if the device class is Vendor Specific.
Drivers can override this policy by specifying a Vendor ID as part
of the match; then vendor-specific matches are allowed.

Linus Walleij has reported a problem this patch fixes.  When a
particular mass-storage device is switched from mass-storage mode to
Media Transfer Protocol, the interface class remains set to mass-storage
and usb-storage binds to it erroneously, even though the device class
changes to Vendor-Specific.

This may cause a problem for some drivers until their match records can
be updated to include Vendor IDs.  But if it does, then those records
were broken to begin with.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/driver.c