usb_serial: Fix oops when unexisting usb serial device is opened.
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Thu, 25 Jun 2009 13:41:37 +0000 (14:41 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Jun 2009 18:24:26 +0000 (11:24 -0700)
This commit 335f8514f200e63d689113d29cb7253a5c282967 has stopped
properly checking if there is any usb serial associated with the tty in
the close function. It happens the close function is called by releasing
the terminal right after opening the device fails.

As an example, open fails with a non-existing device, when probe has
never been called, because the device has never been plugged. This is
common in systems with static modules and no udev.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/usb/serial/usb-serial.c

index d595aa5586a733003532e6f0a7a95e051e3ce659..a84216464ca01fa60a687974f0324b86bffdc137 100644 (file)
@@ -333,6 +333,9 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
 {
        struct usb_serial_port *port = tty->driver_data;
 
+       if (!port)
+               return;
+
        dbg("%s - port %d", __func__, port->number);