summaryrefslogtreecommitdiffstats
path: root/drivers/usb/core
diff options
context:
space:
mode:
authorWolfram Sang2014-01-12 10:07:50 +0100
committerGreg Kroah-Hartman2014-01-13 01:09:35 +0100
commit52a6966c350624db89addc3e6a825f5e797a73e4 (patch)
treeb3f7f154831d0a369f34b3922016b26996da44f0 /drivers/usb/core
parentusb: core: allow a reference device for new_id (diff)
downloadkernel-qcow2-linux-52a6966c350624db89addc3e6a825f5e797a73e4.tar.gz
kernel-qcow2-linux-52a6966c350624db89addc3e6a825f5e797a73e4.tar.xz
kernel-qcow2-linux-52a6966c350624db89addc3e6a825f5e797a73e4.zip
usb: core: bail out if user gives an unknown RefId when using new_id
If users use the new RefId feature of new_id, give them an error message if they provided an unknown reference. That helps detecting typos. Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r--drivers/usb/core/driver.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 9b29e5c94be7..620a0baf103e 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -74,10 +74,13 @@ ssize_t usb_store_new_id(struct usb_dynids *dynids,
const struct usb_device_id *id = id_table;
for (; id->match_flags; id++)
- if (id->idVendor == refVendor && id->idProduct == refProduct) {
- dynid->id.driver_info = id->driver_info;
+ if (id->idVendor == refVendor && id->idProduct == refProduct)
break;
- }
+
+ if (id->match_flags)
+ dynid->id.driver_info = id->driver_info;
+ else
+ return -ENODEV;
}
spin_lock(&dynids->lock);