linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Himadri Pandya <himadrispandya@gmail.com>
Cc: johan@kernel.org, gregkh@linuxfoundation.org,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kernel-mentees@lists.linuxfoundation.org
Subject: Re: [PATCH 01/15] usb: serial: ark3116: use usb_control_msg_recv() and usb_control_msg_send()
Date: Fri, 4 Dec 2020 10:16:07 +0100	[thread overview]
Message-ID: <X8n+V22wFnUEy69N@localhost> (raw)
In-Reply-To: <20201104064703.15123-2-himadrispandya@gmail.com>

On Wed, Nov 04, 2020 at 12:16:49PM +0530, Himadri Pandya wrote:
> The new usb_control_msg_recv() and usb_control_msg_send() nicely wraps
> usb_control_msg() with proper error check. Hence use the wrappers
> instead of calling usb_control_msg() directly.
> 
> Signed-off-by: Himadri Pandya <himadrispandya@gmail.com>
> ---
>  drivers/usb/serial/ark3116.c | 29 ++++-------------------------
>  1 file changed, 4 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/usb/serial/ark3116.c b/drivers/usb/serial/ark3116.c
> index 71a9206ea1e2..51302892c779 100644
> --- a/drivers/usb/serial/ark3116.c
> +++ b/drivers/usb/serial/ark3116.c
> @@ -77,38 +77,17 @@ struct ark3116_private {
>  static int ark3116_write_reg(struct usb_serial *serial,
>  			     unsigned reg, __u8 val)
>  {
> -	int result;
>  	 /* 0xfe 0x40 are magic values taken from original driver */
> -	result = usb_control_msg(serial->dev,
> -				 usb_sndctrlpipe(serial->dev, 0),
> -				 0xfe, 0x40, val, reg,
> -				 NULL, 0, ARK_TIMEOUT);
> -	if (result)
> -		return result;
> -
> -	return 0;
> +	return usb_control_msg_send(serial->dev, 0, 0xfe, 0x40, val, reg, NULL, 0,
> +				    ARK_TIMEOUT, GFP_KERNEL);

For control transfers without a data stage there's no point in using
usb_control_msg_send() as it already returns a negative errno on error
or 0 on success.

>  }
>  
>  static int ark3116_read_reg(struct usb_serial *serial,
>  			    unsigned reg, unsigned char *buf)
>  {
> -	int result;
>  	/* 0xfe 0xc0 are magic values taken from original driver */
> -	result = usb_control_msg(serial->dev,
> -				 usb_rcvctrlpipe(serial->dev, 0),
> -				 0xfe, 0xc0, 0, reg,
> -				 buf, 1, ARK_TIMEOUT);
> -	if (result < 1) {
> -		dev_err(&serial->interface->dev,
> -				"failed to read register %u: %d\n",
> -				reg, result);
> -		if (result >= 0)
> -			result = -EIO;
> -
> -		return result;
> -	}
> -
> -	return 0;
> +	return usb_control_msg_recv(serial->dev, 0, 0xfe, 0xc0, 0, reg, buf, 1,
> +				    ARK_TIMEOUT, GFP_KERNEL);

This driver already use a DMA-able transfer buffer which is allocated
once and then passed to this helper repeatedly. This change would
introduce additional redandant memdup + memcpy for every call and for no
real gain.

You also have an unrelated change here as you simply remove an existing
error message.

Please drop this patch.

Johan

  reply	other threads:[~2020-12-04  9:16 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-04  6:46 [PATCH 00/15] usb: serial: avoid using usb_control_msg() directly Himadri Pandya
2020-11-04  6:46 ` [PATCH 01/15] usb: serial: ark3116: use usb_control_msg_recv() and usb_control_msg_send() Himadri Pandya
2020-12-04  9:16   ` Johan Hovold [this message]
2020-11-04  6:46 ` [PATCH 02/15] usb: serial: belkin_sa: use usb_control_msg_send() Himadri Pandya
2020-12-04  9:17   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 03/15] usb: serial: ch314: use usb_control_msg_recv() and usb_control_msg_send() Himadri Pandya
2020-12-04  9:24   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 04/15] usb: serial: cp210x: " Himadri Pandya
2020-12-04  9:34   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 05/15] usb: serial: cypress_m8: " Himadri Pandya
2020-12-04  9:37   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 06/15] usb: serial: f81232: " Himadri Pandya
2020-12-04  9:49   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 07/15] usb: serial: f81534: " Himadri Pandya
2020-12-04  9:55   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 08/15] usb: serial: ftdi_sio: " Himadri Pandya
2020-12-04 10:03   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 09/15] usb: serial: io_edgeport: " Himadri Pandya
2020-12-04 10:10   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 10/15] usb: serial: io_ti: " Himadri Pandya
2020-12-04 10:12   ` Johan Hovold
2020-11-04  6:46 ` [PATCH 11/15] usb: serial: ipaq: use usb_control_msg_send() Himadri Pandya
2020-12-04 10:21   ` Johan Hovold
2020-11-04  6:47 ` [PATCH 12/15] usb: serial: ipw: " Himadri Pandya
2020-12-04 10:27   ` Johan Hovold
2020-11-04  6:47 ` [PATCH 13/15] usb: serial: iuu_phoenix: " Himadri Pandya
2020-12-04 10:28   ` Johan Hovold
2020-11-04  6:47 ` [PATCH 14/15] usb: serial: keyspan_pda: use usb_control_msg_recv() and usb_control_msg_send() Himadri Pandya
2020-12-04 10:31   ` Johan Hovold
2020-11-04  6:47 ` [PATCH 15/15] usb: serial: kl5kusb105: " Himadri Pandya
2020-12-04 10:37   ` Johan Hovold
2020-11-06 10:43 ` [PATCH 00/15] usb: serial: avoid using usb_control_msg() directly Greg KH
2020-12-04  9:09 ` Johan Hovold
2020-12-24 10:01   ` Himadri Pandya

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=X8n+V22wFnUEy69N@localhost \
    --to=johan@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=himadrispandya@gmail.com \
    --cc=linux-kernel-mentees@lists.linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).