summaryrefslogtreecommitdiff
path: root/drivers/usb/serial/keyspan.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2008-01-22 01:18:24 (GMT)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-22 03:39:41 (GMT)
commita5569a565f7315fe7241cf963f2cc74e53871e11 (patch)
tree489e3518f5e5f36f3a9bb0d6d8925f2a5981a0a5 /drivers/usb/serial/keyspan.c
parent1fc3858a6358400195c067f8726cf3c86a180d80 (diff)
downloadlinux-a5569a565f7315fe7241cf963f2cc74e53871e11.tar.xz
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/serial/keyspan.c')
-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 feba967..7c069a0 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)
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*/