From linux-usb-devel-bounces@lists.sourceforge.net Tue Aug 29 20:52:02 2006 Date: Tue, 29 Aug 2006 22:07:07 -0500 (CDT) From: Mike Isely To: linux-usb-devel@lists.sourceforge.net Message-ID: Subject: cypress_m8: improve control endpoint error handling From: Mike Isely 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 Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/cypress_m8.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) --- gregkh-2.6.orig/drivers/usb/serial/cypress_m8.c +++ gregkh-2.6/drivers/usb/serial/cypress_m8.c @@ -367,9 +367,7 @@ static int cypress_serial_control (struc if (tries++ >= 3) break; - if (retval == EPIPE) - usb_clear_halt(port->serial->dev, 0x00); - } while (retval != 8 && retval != ENODEV); + } while (retval != 8 && retval != -ENODEV); if (retval != 8) err("%s - failed sending serial line settings - %d", __FUNCTION__, retval); @@ -394,9 +392,7 @@ static int cypress_serial_control (struc if (tries++ >= 3) break; - if (retval == EPIPE) - usb_clear_halt(port->serial->dev, 0x00); - } while (retval != 5 && retval != ENODEV); + } while (retval != 5 && retval != -ENODEV); if (retval != 5) { err("%s - failed to retrieve serial line settings - %d", __FUNCTION__, retval);