USB: handle idVendor of 0x0000
Some crazy devices in the wild have a vendor id of 0x0000. If we try to add a module alias with this id, we just can't do it due to a check in the file2alias.c file. Change the test to verify that both the vendor and product ids are 0x0000 to show a real "blank" module alias. Note, the module-init-tools package also needs to be changed to properly generate the depmod tables. Cc: Janusz <janumix@poczta.fm> Cc: stable <stable@kernel.org> Cc: Jon Masters <jcm@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
6ce4560a39
commit
de6f92b9ee
@ -534,8 +534,8 @@ const struct usb_device_id *usb_match_id(struct usb_interface *interface,
|
||||
id->driver_info is the way to create an entry that
|
||||
indicates that the driver want to examine every
|
||||
device and interface. */
|
||||
for (; id->idVendor || id->bDeviceClass || id->bInterfaceClass ||
|
||||
id->driver_info; id++) {
|
||||
for (; id->idVendor || id->idProduct || id->bDeviceClass ||
|
||||
id->bInterfaceClass || id->driver_info; id++) {
|
||||
if (usb_match_one_id(interface, id))
|
||||
return id;
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ static void do_usb_entry_multi(struct usb_device_id *id, struct module *mod)
|
||||
* Some modules (visor) have empty slots as placeholder for
|
||||
* run-time specification that results in catch-all alias
|
||||
*/
|
||||
if (!(id->idVendor | id->bDeviceClass | id->bInterfaceClass))
|
||||
if (!(id->idVendor | id->idProduct | id->bDeviceClass | id->bInterfaceClass))
|
||||
return;
|
||||
|
||||
/* Convert numeric bcdDevice range into fnmatch-able pattern(s) */
|
||||
|
Loading…
Reference in New Issue
Block a user