Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5fda434 authored by Johan Hovold's avatar Johan Hovold
Browse files

USB: serial: pl2303: fix line-setting error handling



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.

Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
parent cd8db057
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -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;
	}