All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>,
	Phillip Potter <phil@philpotter.co.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
	Michael Straube <straube.linux@gmail.com>,
	Pavel Skripkin <paskripkin@gmail.com>
Subject: Re: [PATCH v4 15/18] staging: r8188eu: hal: Clean up usbctrl_vendorreq()
Date: Tue, 14 Sep 2021 12:24:05 +0300	[thread overview]
Message-ID: <20210914092405.GB2088@kadam> (raw)
In-Reply-To: <20210913181002.16651-16-fmdefrancesco@gmail.com>

On Mon, Sep 13, 2021 at 08:09:59PM +0200, Fabio M. De Francesco wrote:
> Clean up usbctrl_vendorreq () in usb_ops_linux.c because some
> of its code will be reused in this series. This cleanup is in
> preparation for shortening the call chains of rtw_read{8,16,32}()
> and rtw_write{8,16,32,N}(). More insights about the reasons why at
> https://lore.kernel.org/lkml/5319192.FrU0QrjFp7@localhost.localdomain/
> 

This commit message is quite bad.

This patch has nothing to do with reusing the code or shortening call
chains.

Don't use a link like that in the commit message especially when it's a
link to an email you wrote.  If it's someone else's email you can say,
somethink like "As <name> points out in <his/her> email <url>.  Blah
blah blah."  That way you give credit to the other person but all the
information is in the commit message.

A better commit message would be:

    Clean up usbctrl_vendorreq().

    1) Remove impossible NULL check.
    2) Rename variables:
        pintfhdl => intfhdl
        pdata => data
        pIo_buf => io_buf
    3) Edit the comments.

> Co-developed-by: Pavel Skripkin <paskripkin@gmail.com>
> Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> ---
> 
> v3->v4:
>         Make this patch.
> v2->v3:
>         No changes.
> v1->v2:
>         No changes.
> 
>  drivers/staging/r8188eu/hal/usb_ops_linux.c | 62 +++++++++------------
>  1 file changed, 27 insertions(+), 35 deletions(-)
> 
> diff --git a/drivers/staging/r8188eu/hal/usb_ops_linux.c b/drivers/staging/r8188eu/hal/usb_ops_linux.c
> index 117213c9f984..2c7e92085a6e 100644
> --- a/drivers/staging/r8188eu/hal/usb_ops_linux.c
> +++ b/drivers/staging/r8188eu/hal/usb_ops_linux.c
> @@ -8,15 +8,15 @@
>  #include "../include/recv_osdep.h"
>  #include "../include/rtl8188e_hal.h"
>  
> -static int usbctrl_vendorreq(struct intf_hdl *pintfhdl, u16 value, void *pdata, u16 len, u8 requesttype)
> +static int usbctrl_vendorreq(struct intf_hdl *intfhdl, u16 value, void *data, u16 len, u8 requesttype)
>  {
> -	struct adapter	*adapt = pintfhdl->padapter;
> -	struct dvobj_priv  *dvobjpriv = adapter_to_dvobj(adapt);
> -	struct usb_device *udev = dvobjpriv->pusbdev;
> -	unsigned int pipe;
>  	int status = 0;
> -	u8 *pIo_buf;
> +	u8 *io_buf;
> +	unsigned int pipe;
>  	int vendorreq_times = 0;
> +	struct adapter *adapt = intfhdl->padapter;
> +	struct dvobj_priv *dvobjpriv = adapter_to_dvobj(adapt);
> +	struct usb_device *udev = dvobjpriv->pusbdev;

I don't understand why you moved these from the top to the bottom.
But the original was better.  In networking code declarations are
normally written in Reverse Christmas Tree format, longest to shortest,
like this:

	long long long_name;
	medium name;
	u8 short;

>  
>  	if ((adapt->bSurpriseRemoved) || (adapt->pwrctrlpriv.pnp_bstop_trx)) {
>  		status = -EPERM;
> @@ -32,51 +32,44 @@ static int usbctrl_vendorreq(struct intf_hdl *pintfhdl, u16 value, void *pdata,
>  	mutex_lock(&dvobjpriv->usb_vendor_req_mutex);
>  
>  	/*  Acquire IO memory for vendorreq */
> -	pIo_buf = dvobjpriv->usb_vendor_req_buf;
> -
> -	if (!pIo_buf) {
> -		DBG_88E("[%s] pIo_buf == NULL\n", __func__);
> -		status = -ENOMEM;
> -		goto release_mutex;
> -	}
> +	io_buf = dvobjpriv->usb_vendor_req_buf;
>  
>  	if (requesttype == REALTEK_USB_VENQT_READ)
> -		pipe = usb_rcvctrlpipe(udev, 0);/* read_in */
> +		/* read in */
> +		pipe = usb_rcvctrlpipe(udev, 0);
>  	else
> -		pipe = usb_sndctrlpipe(udev, 0);/* write_out */
> +		/* write out */
> +		pipe = usb_sndctrlpipe(udev, 0);

Use {} curly braces around multi-line indents.  But in this case the
comments are worthless.  Just delete them.


>  
>  	while (++vendorreq_times <= MAX_USBCTRL_VENDORREQ_TIMES) {
>  		if (requesttype == REALTEK_USB_VENQT_READ)
> -			memset(pIo_buf, 0, len);
> +			memset(io_buf, 0, len);
>  		else
> -			memcpy(pIo_buf, pdata, len);
> +			memcpy(io_buf, data, len);
>  
>  		status = usb_control_msg(udev, pipe, REALTEK_USB_VENQT_CMD_REQ,
>  					 requesttype, value, REALTEK_USB_VENQT_CMD_IDX,
> -					 pIo_buf, len, RTW_USB_CONTROL_MSG_TIMEOUT);
> +					 io_buf, len, RTW_USB_CONTROL_MSG_TIMEOUT);
>  
> -		if (status == len) {   /*  Success this control transfer. */
> +		if (status == len) {
> +			/*  success */

Delete this comment.

>  			rtw_reset_continual_urb_error(dvobjpriv);
>  			if (requesttype == REALTEK_USB_VENQT_READ)
> -				memcpy(pdata, pIo_buf,  len);
> -		} else { /*  error cases */
> -			DBG_88E("reg 0x%x, usb %s %u fail, status:%d value=0x%x, vendorreq_times:%d\n",
> -				value, (requesttype == REALTEK_USB_VENQT_READ) ? "read" : "write",
> -				len, status, *(u32 *)pdata, vendorreq_times);
> -
> +				memcpy(data, io_buf,  len);
> +		} else {
> +			/* errors */

Delete.


>  			if (status < 0) {
> -				if (status == (-ESHUTDOWN) || status == -ENODEV) {
> +				if (status == (-ESHUTDOWN || -ENODEV)) {
>  					adapt->bSurpriseRemoved = true;
>  				} else {
> -					struct hal_data_8188e	*haldata = GET_HAL_DATA(adapt);
> +					struct hal_data_8188e *haldata = GET_HAL_DATA(adapt);
>  					haldata->srestpriv.wifi_error_status = USB_VEN_REQ_CMD_FAIL;
>  				}
> -			} else { /*  status != len && status >= 0 */
> +			} else {
> +				/*  status != len && status >= 0 */

Delete.

>  				if (status > 0) {
> -					if (requesttype == REALTEK_USB_VENQT_READ) {
> -						/*  For Control read transfer, we have to copy the read data from pIo_buf to pdata. */
> -						memcpy(pdata, pIo_buf,  len);
> -					}
> +					if (requesttype == REALTEK_USB_VENQT_READ)
> +						memcpy(data, io_buf,  len);
>  				}
>  			}
>  

regards,
dan carpenter

  reply	other threads:[~2021-09-14  9:24 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13 18:09 [PATCH v4 00/18] staging: r8188eu: Shorten and simplify calls chain Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 01/18] staging: r8188eu: remove usb_{read,write}_mem Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 02/18] staging: r8188eu: remove the helpers of rtw_read8() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 03/18] staging: r8188eu: remove the helpers of rtw_read16() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 04/18] staging: r8188eu: remove the helpers of rtw_read32() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 05/18] staging: r8188eu: remove the helpers of usb_write8 Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 06/18] staging: r8188eu: remove the helpers of usb_write16() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 07/18] staging: r8188eu: remove the helpers of usb_write32() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 08/18] staging: r8188eu: remove the helpers of usb_writeN() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 09/18] staging: r8188eu: remove the helpers of rtw_read_port() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 10/18] staging: r8188eu: remove the helpers of rtw_write_port() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 11/18] staging: r8188eu: remove the helpers of usb_read_port_cancel() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 12/18] staging: r8188eu: remove the helpers of rtw_write_port_cancel() Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 13/18] staging: r8188eu: remove core/rtw_io.c Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 14/18] staging: remove struct _io_ops Fabio M. De Francesco
2021-09-13 18:09 ` [PATCH v4 15/18] staging: r8188eu: hal: Clean up usbctrl_vendorreq() Fabio M. De Francesco
2021-09-14  9:24   ` Dan Carpenter [this message]
2021-09-14 11:18     ` Fabio M. De Francesco
2021-09-14 12:20       ` Dan Carpenter
2021-09-14 13:24     ` Fabio M. De Francesco
2021-09-14 13:30       ` Dan Carpenter
2021-09-14 14:05         ` Fabio M. De Francesco
2021-09-13 18:10 ` [PATCH v4 16/18] staging: r8188eu: hal: Clean up rtw_read*() and rtw_write*() Fabio M. De Francesco
2021-09-14 14:33   ` David Laight
2021-09-13 18:10 ` [PATCH v4 17/18] staging: r8188eu: Shorten calls chain of rtw_read8/16/32() Fabio M. De Francesco
2021-09-13 20:19   ` Pavel Skripkin
2021-09-14  9:32   ` Dan Carpenter
2021-09-14 12:55     ` Fabio M. De Francesco
2021-09-14 13:01       ` Dan Carpenter
2021-09-13 18:10 ` [PATCH v4 18/18] staging: r8188eu: Shorten calls chain of rtw_write8/16/32/N() Fabio M. De Francesco
2021-09-13 20:35 ` [PATCH v4 00/18] staging: r8188eu: Shorten and simplify calls chain Fabio M. De Francesco

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=20210914092405.GB2088@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=Larry.Finger@lwfinger.net \
    --cc=fmdefrancesco@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=paskripkin@gmail.com \
    --cc=phil@philpotter.co.uk \
    --cc=straube.linux@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.