summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Young <hidave.darkstar@gmail.com>2009-02-14 21:21:13 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2009-03-24 16:20:33 -0700
commite4abe6658aa17a5d7e7321dfda807d287255511b (patch)
tree14d475f4f7af7f68f431b6f9be793fdb27a7b046
parentd0626808f7a6181c1c750d261da9a7a845c29e13 (diff)
downloadlinux-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.c3
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)