Make sure to return an error on zero-length transfers when retrieving
the line settings even if the driver currently ignores the return value.

Also remove a redundant check for short transfer when setting the line
settings.

Signed-off-by: Johan Hovold <[email protected]>
---
 drivers/usb/serial/pl2303.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 46fca6b75846..3ba713570c6b 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -449,7 +449,7 @@ static int pl2303_get_line_request(struct usb_serial_port 
*port,
        if (ret != 7) {
                dev_err(&port->dev, "%s - failed: %d\n", __func__, ret);
 
-               if (ret > 0)
+               if (ret >= 0)
                        ret = -EIO;
 
                return ret;
@@ -469,12 +469,8 @@ static int pl2303_set_line_request(struct usb_serial_port 
*port,
        ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
                                SET_LINE_REQUEST, SET_LINE_REQUEST_TYPE,
                                0, 0, buf, 7, 100);
-       if (ret != 7) {
+       if (ret < 0) {
                dev_err(&port->dev, "%s - failed: %d\n", __func__, ret);
-
-               if (ret > 0)
-                       ret = -EIO;
-
                return ret;
        }
 
-- 
2.10.2

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to