diff options
author | Wolfram Sang | 2014-01-12 10:07:50 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2014-01-13 01:09:35 +0100 |
commit | 52a6966c350624db89addc3e6a825f5e797a73e4 (patch) | |
tree | b3f7f154831d0a369f34b3922016b26996da44f0 /drivers/usb/core | |
parent | usb: core: allow a reference device for new_id (diff) | |
download | kernel-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.c | 9 |
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); |