diff options
author | Dave Young <hidave.darkstar@gmail.com> | 2009-02-14 21:21:13 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-24 16:20:33 -0700 |
commit | e4abe6658aa17a5d7e7321dfda807d287255511b (patch) | |
tree | 14d475f4f7af7f68f431b6f9be793fdb27a7b046 | |
parent | d0626808f7a6181c1c750d261da9a7a845c29e13 (diff) | |
download | linux-3.10-e4abe6658aa17a5d7e7321dfda807d287255511b.tar.gz linux-3.10-e4abe6658aa17a5d7e7321dfda807d287255511b.tar.bz2 linux-3.10-e4abe6658aa17a5d7e7321dfda807d287255511b.zip |
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 73172898ccb..742a5bc44be 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) /* must be called with BKL held */ int retval; + if (usb_disabled()) + return -ENODEV; + fixup_generic(driver); if (!driver->description) |