keyspan: fix oops
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Tue, 22 Jan 2008 01:18:24 +0000 (17:18 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 22 Jan 2008 03:39:41 +0000 (19:39 -0800)
If we get a data URB back from the hardware after we have put the tty to
bed we go kaboom.  Fortunately all we need to do is process the URB without
trying to ram its contents down the throat of an ex-tty.

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@akpm@linux-foundation.org>
drivers/usb/serial/keyspan.c

index feba9679ace8b35103fc7ac0315adefdf97b855f..7c069a02c1dd40817d93b58dffed4217bd740ff2 100644 (file)
@@ -447,7 +447,7 @@ static void usa26_indat_callback(struct urb *urb)
 
        port = (struct usb_serial_port *) urb->context;
        tty = port->tty;
-       if (urb->actual_length) {
+       if (tty && urb->actual_length) {
                /* 0x80 bit is error flag */
                if ((data[0] & 0x80) == 0) {
                        /* no errors on individual bytes, only possible overrun err*/