linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] media: dvb-usb-v2: Report error on all error paths
       [not found] <20190412011300.5468-1-stefan.bruens@rwth-aachen.de>
@ 2019-04-12  1:12 ` Stefan Brüns
  2019-05-19 10:17   ` Sean Young
  2019-04-12  1:12 ` [PATCH 2/3] media: dvbsky: Remove duplicate error reporting for dvbsky_usb_generic_rw Stefan Brüns
  2019-04-12  1:13 ` [PATCH 3/3] media: af9035: " Stefan Brüns
  2 siblings, 1 reply; 4+ messages in thread
From: Stefan Brüns @ 2019-04-12  1:12 UTC (permalink / raw)
  To: linux-media
  Cc: linux-kernel, Mauro Carvalho Chehab, Antti Palosaari, Stefan Brüns

actual_length != wlen is the only error path which does not generate an
error message. Adding an error message here allows to report a more
specific error and to remove the error reporting from the call sites.

Also clean up the error paths - in case of an error, the remaining
code is skipped, and ret is returned. Skip setting ret and return
immediately (no cleanup necessary).
---
 drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
index 5bafeb6486be..5b32d159f968 100644
--- a/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
+++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
@@ -37,14 +37,19 @@ static int dvb_usb_v2_generic_io(struct dvb_usb_device *d,
 	ret = usb_bulk_msg(d->udev, usb_sndbulkpipe(d->udev,
 			d->props->generic_bulk_ctrl_endpoint), wbuf, wlen,
 			&actual_length, 2000);
-	if (ret < 0)
+	if (ret) {
 		dev_err(&d->udev->dev, "%s: usb_bulk_msg() failed=%d\n",
 				KBUILD_MODNAME, ret);
-	else
-		ret = actual_length != wlen ? -EIO : 0;
+		return ret;
+	}
+	if (actual_length != wlen) {
+		dev_err(&d->udev->dev, "%s: usb_bulk_msg() write length=%d, actual=%d\n",
+				KBUILD_MODNAME, wlen, actual_length);
+		return -EIO;
+	}
 
-	/* an answer is expected, and no error before */
-	if (!ret && rbuf && rlen) {
+	/* an answer is expected */
+	if (rbuf && rlen) {
 		if (d->props->generic_bulk_ctrl_delay)
 			usleep_range(d->props->generic_bulk_ctrl_delay,
 					d->props->generic_bulk_ctrl_delay
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] media: dvbsky: Remove duplicate error reporting for dvbsky_usb_generic_rw
       [not found] <20190412011300.5468-1-stefan.bruens@rwth-aachen.de>
  2019-04-12  1:12 ` [PATCH 1/3] media: dvb-usb-v2: Report error on all error paths Stefan Brüns
@ 2019-04-12  1:12 ` Stefan Brüns
  2019-04-12  1:13 ` [PATCH 3/3] media: af9035: " Stefan Brüns
  2 siblings, 0 replies; 4+ messages in thread
From: Stefan Brüns @ 2019-04-12  1:12 UTC (permalink / raw)
  To: linux-media
  Cc: linux-kernel, Mauro Carvalho Chehab, Antti Palosaari, Stefan Brüns

Errors are already reported by the common code in dvb_usb_v2_generic_io
(which dvbsky_usb_generic_rw is a wrapper of), so there is no reason
report the error again.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
---
 drivers/media/usb/dvb-usb-v2/dvbsky.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c
index e28bd8836751..dffcadd8c834 100644
--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c
+++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c
@@ -100,8 +100,6 @@ static int dvbsky_gpio_ctrl(struct dvb_usb_device *d, u8 gport, u8 value)
 	obuf[1] = gport;
 	obuf[2] = value;
 	ret = dvbsky_usb_generic_rw(d, obuf, 3, ibuf, 1);
-	if (ret)
-		dev_err(&d->udev->dev, "failed=%d\n", ret);
 	return ret;
 }
 
@@ -139,8 +137,6 @@ static int dvbsky_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 			obuf[3] = msg[0].addr;
 			ret = dvbsky_usb_generic_rw(d, obuf, 4,
 					ibuf, msg[0].len + 1);
-			if (ret)
-				dev_err(&d->udev->dev, "failed=%d\n", ret);
 			if (!ret)
 				memcpy(msg[0].buf, &ibuf[1], msg[0].len);
 		} else {
@@ -151,8 +147,6 @@ static int dvbsky_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 			memcpy(&obuf[3], msg[0].buf, msg[0].len);
 			ret = dvbsky_usb_generic_rw(d, obuf,
 					msg[0].len + 3, ibuf, 1);
-			if (ret)
-				dev_err(&d->udev->dev, "failed=%d\n", ret);
 		}
 	} else {
 		if ((msg[0].len > 60) || (msg[1].len > 60)) {
@@ -170,9 +164,6 @@ static int dvbsky_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
 		memcpy(&obuf[4], msg[0].buf, msg[0].len);
 		ret = dvbsky_usb_generic_rw(d, obuf,
 			msg[0].len + 4, ibuf, msg[1].len + 1);
-		if (ret)
-			dev_err(&d->udev->dev, "failed=%d\n", ret);
-
 		if (!ret)
 			memcpy(msg[1].buf, &ibuf[1], msg[1].len);
 	}
@@ -201,8 +192,6 @@ static int dvbsky_rc_query(struct dvb_usb_device *d)
 
 	obuf[0] = 0x10;
 	ret = dvbsky_usb_generic_rw(d, obuf, 1, ibuf, 2);
-	if (ret)
-		dev_err(&d->udev->dev, "failed=%d\n", ret);
 	if (ret == 0)
 		code = (ibuf[0] << 8) | ibuf[1];
 	if (code != 0xffff) {
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] media: af9035: Remove duplicate error reporting for dvbsky_usb_generic_rw
       [not found] <20190412011300.5468-1-stefan.bruens@rwth-aachen.de>
  2019-04-12  1:12 ` [PATCH 1/3] media: dvb-usb-v2: Report error on all error paths Stefan Brüns
  2019-04-12  1:12 ` [PATCH 2/3] media: dvbsky: Remove duplicate error reporting for dvbsky_usb_generic_rw Stefan Brüns
@ 2019-04-12  1:13 ` Stefan Brüns
  2 siblings, 0 replies; 4+ messages in thread
From: Stefan Brüns @ 2019-04-12  1:13 UTC (permalink / raw)
  To: linux-media
  Cc: linux-kernel, Mauro Carvalho Chehab, Antti Palosaari, Stefan Brüns

All error cases inside the function already report errors via dev_err(),
and dvb_usb_v2_generic_rw also reports all error cases, so there is
no silent code path when an error has occured.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
---
 drivers/media/usb/dvb-usb-v2/af9035.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
index 80d3bd3a0f24..920596f78460 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -120,8 +120,6 @@ static int af9035_ctrl_msg(struct dvb_usb_device *d, struct usb_req *req)
 		memcpy(req->rbuf, &state->buf[ACK_HDR_LEN], req->rlen);
 exit:
 	mutex_unlock(&d->usb_mutex);
-	if (ret < 0)
-		dev_dbg(&intf->dev, "failed=%d\n", ret);
 	return ret;
 }
 
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] media: dvb-usb-v2: Report error on all error paths
  2019-04-12  1:12 ` [PATCH 1/3] media: dvb-usb-v2: Report error on all error paths Stefan Brüns
@ 2019-05-19 10:17   ` Sean Young
  0 siblings, 0 replies; 4+ messages in thread
From: Sean Young @ 2019-05-19 10:17 UTC (permalink / raw)
  To: Stefan Brüns
  Cc: linux-media, linux-kernel, Mauro Carvalho Chehab, Antti Palosaari

Hi Stefan,

On Fri, Apr 12, 2019 at 03:12:58AM +0200, Stefan Brüns wrote:
> actual_length != wlen is the only error path which does not generate an
> error message. Adding an error message here allows to report a more
> specific error and to remove the error reporting from the call sites.
> 
> Also clean up the error paths - in case of an error, the remaining
> code is skipped, and ret is returned. Skip setting ret and return
> immediately (no cleanup necessary).

There is no Signed-off-by: line:

https://www.kernel.org/doc/html/latest/process/submitting-patches.html?highlight=signed%20off#sign-your-work-the-developer-s-certificate-of-origin

This is needed for merging. 

Sean

> ---
>  drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
> index 5bafeb6486be..5b32d159f968 100644
> --- a/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
> +++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
> @@ -37,14 +37,19 @@ static int dvb_usb_v2_generic_io(struct dvb_usb_device *d,
>  	ret = usb_bulk_msg(d->udev, usb_sndbulkpipe(d->udev,
>  			d->props->generic_bulk_ctrl_endpoint), wbuf, wlen,
>  			&actual_length, 2000);
> -	if (ret < 0)
> +	if (ret) {
>  		dev_err(&d->udev->dev, "%s: usb_bulk_msg() failed=%d\n",
>  				KBUILD_MODNAME, ret);
> -	else
> -		ret = actual_length != wlen ? -EIO : 0;
> +		return ret;
> +	}
> +	if (actual_length != wlen) {
> +		dev_err(&d->udev->dev, "%s: usb_bulk_msg() write length=%d, actual=%d\n",
> +				KBUILD_MODNAME, wlen, actual_length);
> +		return -EIO;
> +	}
>  
> -	/* an answer is expected, and no error before */
> -	if (!ret && rbuf && rlen) {
> +	/* an answer is expected */
> +	if (rbuf && rlen) {
>  		if (d->props->generic_bulk_ctrl_delay)
>  			usleep_range(d->props->generic_bulk_ctrl_delay,
>  					d->props->generic_bulk_ctrl_delay
> -- 
> 2.21.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-05-19 17:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20190412011300.5468-1-stefan.bruens@rwth-aachen.de>
2019-04-12  1:12 ` [PATCH 1/3] media: dvb-usb-v2: Report error on all error paths Stefan Brüns
2019-05-19 10:17   ` Sean Young
2019-04-12  1:12 ` [PATCH 2/3] media: dvbsky: Remove duplicate error reporting for dvbsky_usb_generic_rw Stefan Brüns
2019-04-12  1:13 ` [PATCH 3/3] media: af9035: " Stefan Brüns

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).