The format of usb_device_id tables was recently changed (just before 2.4.0, I think) to include a match_flags field. A bit set to one in that field indicates that a given member of the structure contains a valid value that must match. A bit set to zero indicates a wildcard (skip the comparison). Compiling a driver that uses the old format results in that driver having a usb_device_id structure that has an all zeroes match_flags, which means don't compare anything. That is, it is a completely wildcard and will match every USB interface. As of 2.4.1-pre9, there appears to be only USB driver that was missed: drivers/usb/serial/mct_u232.c. This patch fixes the problem. -- Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104 [EMAIL PROTECTED] \ / San Jose, California 95129-1034 +1 408 261-6630 | g g d r a s i l United States of America fax +1 408 261-6631 "Free Software For The Rest Of Us."
--- linux-2.4.1-pre9/drivers/usb/serial/mct_u232.c Thu Dec 7 16:13:38 2000 +++ linux/drivers/usb/serial/mct_u232.c Sat Jan 20 02:52:44 2001 @@ -102,7 +102,7 @@ * All of the device info needed for the MCT USB-RS232 converter. */ static __devinitdata struct usb_device_id id_table [] = { - { idVendor: MCT_U232_VID, idProduct: MCT_U232_PID }, + { USB_DEVICE(MCT_U232_VID, MCT_U232_PID) }, { } /* Terminating entry */ };