[PATCH] USB: fix usb-serial generic initialization

At module load time, if a generic device is found, the tty information
for the device is not set up properly (as the tty structures aren't initialized
yet.)  This can cause big problems for things like udev.  This patch fixes this.

Thanks to Kay Sievers for the original patch for this problem.

Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>

---
commit 06299db3e7f857a4985cf70dc1a5049ec12482c1
tree 115792ba36a9b4fe1f57d849c4f9ac2d0e80a90f
parent 47900743a56dc41a053107d64054aca3e1b42157
author Greg Kroah-Hartman <[EMAIL PROTECTED]> Thu, 26 May 2005 05:55:55 -0700
committer Greg KH <[EMAIL PROTECTED]> Tue, 31 May 2005 14:13:59 -0700

 drivers/usb/serial/usb-serial.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -1297,13 +1297,6 @@ static int __init usb_serial_init(void)
                goto exit_bus;
        }
 
-       /* register the generic driver, if we should */
-       result = usb_serial_generic_register(debug);
-       if (result < 0) {
-               err("%s - registering generic driver failed", __FUNCTION__);
-               goto exit_generic;
-       }
-
        usb_serial_tty_driver->owner = THIS_MODULE;
        usb_serial_tty_driver->driver_name = "usbserial";
        usb_serial_tty_driver->devfs_name = "usb/tts/";
@@ -1329,17 +1322,24 @@ static int __init usb_serial_init(void)
                goto exit_tty;
        }
 
+       /* register the generic driver, if we should */
+       result = usb_serial_generic_register(debug);
+       if (result < 0) {
+               err("%s - registering generic driver failed", __FUNCTION__);
+               goto exit_generic;
+       }
+
        info(DRIVER_DESC " " DRIVER_VERSION);
 
        return result;
 
+exit_generic:
+       usb_deregister(&usb_serial_driver);
+
 exit_tty:
        tty_unregister_driver(usb_serial_tty_driver);
 
 exit_reg_driver:
-       usb_serial_generic_deregister();
-
-exit_generic:
        bus_unregister(&usb_serial_bus_type);
 
 exit_bus:



-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to