aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2008-01-21 20:18:24 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-21 22:39:41 -0500
commita5569a565f7315fe7241cf963f2cc74e53871e11 (patch)
tree489e3518f5e5f36f3a9bb0d6d8925f2a5981a0a5 /drivers/usb
parent1fc3858a6358400195c067f8726cf3c86a180d80 (diff)
keyspan: fix oops
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>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/keyspan.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c
index feba9679ace8..7c069a02c1dd 100644
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
@@ -447,7 +447,7 @@ static void usa26_indat_callback(struct urb *urb)
447 447
448 port = (struct usb_serial_port *) urb->context; 448 port = (struct usb_serial_port *) urb->context;
449 tty = port->tty; 449 tty = port->tty;
450 if (urb->actual_length) { 450 if (tty && urb->actual_length) {
451 /* 0x80 bit is error flag */ 451 /* 0x80 bit is error flag */
452 if ((data[0] & 0x80) == 0) { 452 if ((data[0] & 0x80) == 0) {
453 /* no errors on individual bytes, only possible overrun err*/ 453 /* no errors on individual bytes, only possible overrun err*/