aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2008-01-28 12:50:12 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 17:34:46 -0500
commitde6f92b9ee00e9f841fb1a63d0bd60593ec55dbe (patch)
treefcd4403920eb1a29a515a5b59130ea61e6e9cffc
parent6ce4560a39f72e45a273c652ee116f8b0fc6386f (diff)
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>
-rw-r--r--drivers/usb/core/driver.c4
-rw-r--r--scripts/mod/file2alias.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 7c3aaa9c5402..96d3f852f4ad 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -534,8 +534,8 @@ const struct usb_device_id *usb_match_id(struct usb_interface *interface,
534 id->driver_info is the way to create an entry that 534 id->driver_info is the way to create an entry that
535 indicates that the driver want to examine every 535 indicates that the driver want to examine every
536 device and interface. */ 536 device and interface. */
537 for (; id->idVendor || id->bDeviceClass || id->bInterfaceClass || 537 for (; id->idVendor || id->idProduct || id->bDeviceClass ||
538 id->driver_info; id++) { 538 id->bInterfaceClass || id->driver_info; id++) {
539 if (usb_match_one_id(interface, id)) 539 if (usb_match_one_id(interface, id))
540 return id; 540 return id;
541 } 541 }
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index d802b5afae89..9ddf944cce29 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -155,7 +155,7 @@ static void do_usb_entry_multi(struct usb_device_id *id, struct module *mod)
155 * Some modules (visor) have empty slots as placeholder for 155 * Some modules (visor) have empty slots as placeholder for
156 * run-time specification that results in catch-all alias 156 * run-time specification that results in catch-all alias
157 */ 157 */
158 if (!(id->idVendor | id->bDeviceClass | id->bInterfaceClass)) 158 if (!(id->idVendor | id->idProduct | id->bDeviceClass | id->bInterfaceClass))
159 return; 159 return;
160 160
161 /* Convert numeric bcdDevice range into fnmatch-able pattern(s) */ 161 /* Convert numeric bcdDevice range into fnmatch-able pattern(s) */