Quellcode durchsuchen

cypress_m8: improve control endpoint error handling

Fix usb core function error return checks to look for negative errno
values, not positive errno values.  This bug had rendered those checks
useless.  Also remove attempted error recovery on control endpoints
for EPIPE - with control endpoints EPIPE does not indicate a halted
endpoint so trying to recover with usb_clear_halt() is not the correct
action.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Mike Isely vor 19 Jahren
Ursprung
Commit
48298e50e0
1 geänderte Dateien mit 2 neuen und 6 gelöschten Zeilen
  1. 2 6
      drivers/usb/serial/cypress_m8.c

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

@@ -367,9 +367,7 @@ static int cypress_serial_control (struct usb_serial_port *port, unsigned baud_m
 				if (tries++ >= 3)
 				if (tries++ >= 3)
 					break;
 					break;
 
 
-				if (retval == EPIPE)
-					usb_clear_halt(port->serial->dev, 0x00);
-			} while (retval != 8 && retval != ENODEV);
+			} while (retval != 8 && retval != -ENODEV);
 
 
 			if (retval != 8)
 			if (retval != 8)
 				err("%s - failed sending serial line settings - %d", __FUNCTION__, retval);
 				err("%s - failed sending serial line settings - %d", __FUNCTION__, retval);
@@ -394,9 +392,7 @@ static int cypress_serial_control (struct usb_serial_port *port, unsigned baud_m
 				if (tries++ >= 3)
 				if (tries++ >= 3)
 					break;
 					break;
 
 
-				if (retval == EPIPE)
-					usb_clear_halt(port->serial->dev, 0x00);
-			} while (retval != 5 && retval != ENODEV);
+			} while (retval != 5 && retval != -ENODEV);
 
 
 			if (retval != 5) {
 			if (retval != 5) {
 				err("%s - failed to retrieve serial line settings - %d", __FUNCTION__, retval);
 				err("%s - failed to retrieve serial line settings - %d", __FUNCTION__, retval);