public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: Lin YuChen <starpt.official@gmail.com>
Cc: gregkh@linuxfoundation.org, straube.linux@gmail.com,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] staging: rtl8723bs: refactor rtw_aes_decrypt() to reduce nesting
Date: Thu, 19 Mar 2026 10:58:45 +0300	[thread overview]
Message-ID: <abustSUaXYf70Js1@stanley.mountain> (raw)
In-Reply-To: <20260317165149.16751-1-starpt.official@gmail.com>

What often happens is that I write a review email and then decide not
to send it.  I probably would have merged your patch as-is, but since
Greg has decided not to then we as well fix this as well.

On Wed, Mar 18, 2026 at 12:51:49AM +0800, Lin YuChen wrote:
> Improve code readability by refactoring rtw_aes_decrypt() to use
> guard clauses and early exits. This reduces the maximum indentation
> level and flattens the logic flow for key assignment and decryption.
> 
> Signed-off-by: Lin YuChen <starpt.official@gmail.com>
> ---
>  drivers/staging/rtl8723bs/core/rtw_security.c | 91 ++++++++++---------
>  1 file changed, 46 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/staging/rtl8723bs/core/rtw_security.c b/drivers/staging/rtl8723bs/core/rtw_security.c
> index b489babe7432..9229e0a1c792 100644
> --- a/drivers/staging/rtl8723bs/core/rtw_security.c
> +++ b/drivers/staging/rtl8723bs/core/rtw_security.c
> @@ -1213,69 +1213,70 @@ u32 rtw_aes_decrypt(struct adapter *padapter, u8 *precvframe)
>  
>  	pframe = (unsigned char *)((union recv_frame *)precvframe)->u.hdr.rx_data;
>  	/* 4 start to encrypt each fragment */
> -	if (prxattrib->encrypt == _AES_) {
> -		stainfo = rtw_get_stainfo(&padapter->stapriv, &prxattrib->ta[0]);
> -		if (stainfo) {
> -			if (is_multicast_ether_addr(prxattrib->ra)) {
> -				static unsigned long start;
> -				static u32 no_gkey_bc_cnt;
> -				static u32 no_gkey_mc_cnt;
> +	if (prxattrib->encrypt != _AES_)
> +		goto exit;

Just return directly.  When I'm reading this patch, I have to think
"Oh, what does goto exit do?"  So I scroll down to the bottom, and I
see it returns res.  So then I scroll up here and I think "what is
res?" but it's not included in the email.  Compare that to just doing
"return _SUCCESS;" where anyone can instantly see what it does without
scrolling up and down and changing to a different window.

>  
> -				if (!psecuritypriv->binstallGrpkey) {
> -					res = _FAIL;
> +	stainfo = rtw_get_stainfo(&padapter->stapriv, &prxattrib->ta[0]);
> +	if (!stainfo) {
> +		res = _FAIL;
> +		goto exit;
> +	}

Same.  Just return directly.

> +	if (is_multicast_ether_addr(prxattrib->ra)) {
> +		static unsigned long start;
> +		static u32 no_gkey_bc_cnt;
> +		static u32 no_gkey_mc_cnt;
>  
> -					if (start == 0)
> -						start = jiffies;
> +		if (!psecuritypriv->binstallGrpkey) {
> +			res = _FAIL;
>  
> -					if (is_broadcast_mac_addr(prxattrib->ra))
> -						no_gkey_bc_cnt++;
> -					else
> -						no_gkey_mc_cnt++;
> +			if (start == 0)
> +				start = jiffies;
>  
> -					if (jiffies_to_msecs(jiffies - start) > 1000) {
> -						if (no_gkey_bc_cnt || no_gkey_mc_cnt) {
> -							netdev_dbg(padapter->pnetdev,
> -								   FUNC_ADPT_FMT " no_gkey_bc_cnt:%u, no_gkey_mc_cnt:%u\n",
> -								   FUNC_ADPT_ARG(padapter),
> -								   no_gkey_bc_cnt,
> -								   no_gkey_mc_cnt);
> -						}
> -						start = jiffies;
> -						no_gkey_bc_cnt = 0;
> -						no_gkey_mc_cnt = 0;
> -					}
> -
> -					goto exit;

Leave this goto exit because changing it would be an unrelated change.
The line is that adding a new goto is related because you were either
going to add a return or a goto.  Changing existing code is an unrelated
change and we want to leave those lines as-is except for pulling them
in a tab.

> -				}
> +			if (is_broadcast_mac_addr(prxattrib->ra))
> +				no_gkey_bc_cnt++;
> +			else
> +				no_gkey_mc_cnt++;
>  
> +			if (jiffies_to_msecs(jiffies - start) > 1000) {
>  				if (no_gkey_bc_cnt || no_gkey_mc_cnt) {
>  					netdev_dbg(padapter->pnetdev,
> -						   FUNC_ADPT_FMT " gkey installed. no_gkey_bc_cnt:%u, no_gkey_mc_cnt:%u\n",
> -						   FUNC_ADPT_ARG(padapter),
> -						   no_gkey_bc_cnt,
> +						   FUNC_ADPT_FMT " no_gkey_bc_cnt:%u, no_gkey_mc_cnt:%u\n",
> +						   FUNC_ADPT_ARG(padapter), no_gkey_bc_cnt,
>  						   no_gkey_mc_cnt);
>  				}
> -				start = 0;
> +				start = jiffies;
>  				no_gkey_bc_cnt = 0;
>  				no_gkey_mc_cnt = 0;
> -
> -				prwskey = psecuritypriv->dot118021XGrpKey[prxattrib->key_index].skey;
> -				if (psecuritypriv->dot118021XGrpKeyid != prxattrib->key_index) {
> -					res = _FAIL;
> -					goto exit;
> -				}
> -			} else {
> -				prwskey = &stainfo->dot118021x_UncstKey.skey[0];
>  			}
>  
> -			length = ((union recv_frame *)precvframe)->u.hdr.len - prxattrib->hdrlen - prxattrib->iv_len;
> +			goto exit;
> +		}
>  
> -			res = aes_decipher(prwskey, prxattrib->hdrlen, pframe, length);
> +		if (no_gkey_bc_cnt || no_gkey_mc_cnt) {
> +			netdev_dbg(padapter->pnetdev,
> +				   FUNC_ADPT_FMT " gkey installed. no_gkey_bc_cnt:%u, no_gkey_mc_cnt:%u\n",
> +				   FUNC_ADPT_ARG(padapter), no_gkey_bc_cnt,
> +				   no_gkey_mc_cnt);
> +		}
> +		start = 0;
> +		no_gkey_bc_cnt = 0;
> +		no_gkey_mc_cnt = 0;
>  
> -		} else {
> +		prwskey = psecuritypriv->dot118021XGrpKey[prxattrib->key_index]
> +				  .skey;
> +		if (psecuritypriv->dot118021XGrpKeyid != prxattrib->key_index) {
>  			res = _FAIL;
> +			goto exit;
>  		}
> +	} else {
> +		prwskey = &stainfo->dot118021x_UncstKey.skey[0];
>  	}
> +
> +	length = ((union recv_frame *)precvframe)->u.hdr.len -
> +		 prxattrib->hdrlen - prxattrib->iv_len;

Checkpatch wants you to break this line up, but it wasn't broken up in
the original code so that's an unrelated change.

regards,
dan carpenter

> +
> +	res = aes_decipher(prwskey, prxattrib->hdrlen, pframe, length);
> +
>  exit:
>  	return res;
>  }
> -- 
> 2.34.1

      parent reply	other threads:[~2026-03-19  7:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-17 16:51 [PATCH] staging: rtl8723bs: refactor rtw_aes_decrypt() to reduce nesting Lin YuChen
2026-03-18 15:56 ` Greg KH
2026-03-18 21:51   ` [PATCH v2 0/2] staging: rtl8723bs: refactor rtw_aes_decrypt() Lin YuChen
2026-03-18 21:51     ` [PATCH v2 1/2] staging: rtl8723bs: use guard clause for AES check Lin YuChen
2026-03-19  7:59       ` Dan Carpenter
2026-03-19 12:07         ` [PATCH v3 0/2] staging: rtl8723bs: refactor rtw_aes_decrypt() Lin YuChen
2026-03-19 12:07           ` [PATCH v3 1/2] staging: rtl8723bs: use guard clause for AES check Lin YuChen
2026-03-19 12:07           ` [PATCH v3 2/2] staging: rtl8723bs: use guard clause for stainfo check Lin YuChen
2026-03-19 12:46           ` [PATCH v3 0/2] staging: rtl8723bs: refactor rtw_aes_decrypt() Dan Carpenter
2026-03-19 17:01             ` YuChen Lin
2026-03-18 21:51     ` [PATCH v2 2/2] staging: rtl8723bs: use guard clause for stainfo check Lin YuChen
2026-03-19  7:58 ` Dan Carpenter [this message]

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=abustSUaXYf70Js1@stanley.mountain \
    --to=dan.carpenter@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=starpt.official@gmail.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox