diff options
author | Dave Young <hidave.darkstar@gmail.com> | 2009-02-14 08:21:13 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-24 19:20:33 -0400 |
commit | e4abe6658aa17a5d7e7321dfda807d287255511b (patch) | |
tree | 14d475f4f7af7f68f431b6f9be793fdb27a7b046 | |
parent | d0626808f7a6181c1c750d261da9a7a845c29e13 (diff) |
usb-serial: fix usb_serial_register bug when boot with nousb param
With "nousb" cmdline booting, built-in serial drivers (ie. airecable)
will trigger kernel oops.
Indeed, if nousb, usb_serial_init will failed, and the usb serial bus type
will not be registerd, then usb_serial_register call driver_register
which try to register the driver to a not registered bus.
Here add usb_disabled() check in usb_serial_register to fix it.
Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/usb/serial/usb-serial.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c index 73172898ccb3..742a5bc44be8 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c | |||
@@ -1241,6 +1241,9 @@ int usb_serial_register(struct usb_serial_driver *driver) | |||
1241 | /* must be called with BKL held */ | 1241 | /* must be called with BKL held */ |
1242 | int retval; | 1242 | int retval; |
1243 | 1243 | ||
1244 | if (usb_disabled()) | ||
1245 | return -ENODEV; | ||
1246 | |||
1244 | fixup_generic(driver); | 1247 | fixup_generic(driver); |
1245 | 1248 | ||
1246 | if (!driver->description) | 1249 | if (!driver->description) |