summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2008-01-03 16:59:04 +0000
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 14:34:42 -0800
commit3004e5379a525d848bbe8ddff2c534ac0fb04e2c (patch)
treefa8b89f8be36ef50a1a3750f2bd1c1c03ec9fbdf
parent24e1c13c93cbdd05e4b7ea921c0050b036555adc (diff)
downloadlinux-3004e5379a525d848bbe8ddff2c534ac0fb04e2c.tar.gz
linux-3004e5379a525d848bbe8ddff2c534ac0fb04e2c.tar.bz2
linux-3004e5379a525d848bbe8ddff2c534ac0fb04e2c.zip
USB: 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. Cc: stable <stable@kernel.org> Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-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 7c069a02c1dd..ea7bba69f4da 100644
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
@@ -838,7 +838,7 @@ static void usa49_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 error on any byte */