Browse Source

USB: ssu100: refine process_packet in ssu100

The status information does not appear at the start of each incoming
packet so the check for len < 4 at the start of ssu100_process_packet
is wrong.  Remove it.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Bill Pemberton 15 years ago
parent
commit
9b2cef31f2
1 changed files with 2 additions and 6 deletions
  1. 2 6
      drivers/usb/serial/ssu100.c

+ 2 - 6
drivers/usb/serial/ssu100.c

@@ -575,12 +575,8 @@ static int ssu100_process_packet(struct tty_struct *tty,
 
 
 	dbg("%s - port %d", __func__, port->number);
 	dbg("%s - port %d", __func__, port->number);
 
 
-	if (len < 4) {
-		dbg("%s - malformed packet", __func__);
-		return 0;
-	}
-
-	if ((packet[0] == 0x1b) && (packet[1] == 0x1b) &&
+	if ((len >= 4) &&
+	    (packet[0] == 0x1b) && (packet[1] == 0x1b) &&
 	    ((packet[2] == 0x00) || (packet[2] == 0x01))) {
 	    ((packet[2] == 0x00) || (packet[2] == 0x01))) {
 		if (packet[2] == 0x00)
 		if (packet[2] == 0x00)
 			priv->shadowLSR = packet[3] & (SERIAL_LSR_OE |
 			priv->shadowLSR = packet[3] & (SERIAL_LSR_OE |