This patch (as851) fixes a bug introduced when the USB ID matching code was refactored. If any of the device-level matches fail we should reject right away. Instead, when none of the device-level matches fail the current code accepts right away.
Signed-off-by: Alan Stern <[EMAIL PROTECTED]> --- Greg: I realized that this really is a bug. Consider for example the USB_INTERFACE_INFO() macro. It creates match entries that specify only interface-level values, not device-level values. So usb_match_device() will not find any mismatches and will return 1. At that point you don't want to accept immediately; you want to go on and test for interface-level mismatches. Alan Stern Index: usb-2.6/drivers/usb/core/driver.c =================================================================== --- usb-2.6.orig/drivers/usb/core/driver.c +++ usb-2.6/drivers/usb/core/driver.c @@ -415,8 +415,8 @@ int usb_match_one_id(struct usb_interfac intf = interface->cur_altsetting; dev = interface_to_usbdev(interface); - if (usb_match_device(dev, id)) - return 1; + if (!usb_match_device(dev, id)) + return 0; /* The interface class, subclass, and protocol should never be * checked for a match if the device class is Vendor Specific, ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel