2021-10-14 15:00:28

by Saurav Girepunje

[permalink] [raw]
Subject: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement

Remove goto statement where function simply return value without doing
any cleanup action.

Simplify the return using goto label to avoid unneeded 'if' condition
check.

Remove the unneeded and redundant check of variable on goto.

Remove the assignment of NULL on local variable.

Signed-off-by: Saurav Girepunje <[email protected]>
---

ChangeLog V3:

-Remove goto statement where function simply return value
without doing any cleanup action.
-Remove the assignment of NULL on local variable.
-Replace the goto statement added after the memcpy on V2.
with return 0 statement.

ChangeLog V2:

-Add goto out after the memcpy for no error case return with
ret only. On V1 doing free, which was not required for no error
case.

ChangeLog V1:

-Remove the unneeded and redundant check of variable on
goto out.
-Simplify the return using goto label to avoid unneeded if
condition check.

.../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 29 ++++++++-----------
1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
index 0868f56e2979..217b86bfb722 100644
--- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
@@ -2281,19 +2281,16 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str
struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter);

if (!name) {
- ret = -EINVAL;
- goto out;
+ return -EINVAL;
}

if (pwdev_priv->pmon_ndev) {
- ret = -EBUSY;
- goto out;
+ return -EBUSY;
}

mon_ndev = alloc_etherdev(sizeof(struct rtw_netdev_priv_indicator));
if (!mon_ndev) {
- ret = -ENOMEM;
- goto out;
+ return -ENOMEM;
}

mon_ndev->type = ARPHRD_IEEE80211_RADIOTAP;
@@ -2312,7 +2309,7 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str
mon_wdev = rtw_zmalloc(sizeof(struct wireless_dev));
if (!mon_wdev) {
ret = -ENOMEM;
- goto out;
+ goto err_free_mon_ndev;
}

mon_wdev->wiphy = padapter->rtw_wdev->wiphy;
@@ -2322,22 +2319,20 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str

ret = cfg80211_register_netdevice(mon_ndev);
if (ret) {
- goto out;
+ goto err_free_mon_wdev;
}

*ndev = pwdev_priv->pmon_ndev = mon_ndev;
memcpy(pwdev_priv->ifname_mon, name, IFNAMSIZ+1);

-out:
- if (ret && mon_wdev) {
- kfree(mon_wdev);
- mon_wdev = NULL;
- }
+ return 0;

- if (ret && mon_ndev) {
- free_netdev(mon_ndev);
- *ndev = mon_ndev = NULL;
- }
+err_free_mon_wdev:
+ kfree(mon_wdev);
+
+err_free_mon_ndev:
+ free_netdev(mon_ndev);
+ *ndev = NULL;

return ret;
}
--
2.33.0


2021-10-14 15:03:41

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement

On Thu, Oct 14, 2021 at 08:10:00PM +0530, Saurav Girepunje wrote:
> .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 29 ++++++++-----------
> 1 file changed, 12 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
> index 0868f56e2979..217b86bfb722 100644
> --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
> +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
> @@ -2281,19 +2281,16 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str
> struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter);
>
> if (!name) {
> - ret = -EINVAL;
> - goto out;
> + return -EINVAL;
> }

You need to delete the curly braces, otherwise your patch will introduce
a checkpatch warning. Same below as well.

regards,
dan carpenter

2021-10-14 15:57:05

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement

On Thu, Oct 14, 2021 at 08:10:00PM +0530, Saurav Girepunje wrote:
> Remove goto statement where function simply return value without doing
> any cleanup action.
>
> Simplify the return using goto label to avoid unneeded 'if' condition
> check.
>
> Remove the unneeded and redundant check of variable on goto.
>
> Remove the assignment of NULL on local variable.

You are saying _what_ you are doing here, but not _why_ you are doing
this. For example, this last sentance does not make sense, why would
you want to do such a thing (hint, I know, but you need to explain it in
the changelog...)

It's getting better, but the changelog still needs work. Often times
that's the hardest part of writing a kernel patch.

thanks,

greg k-h

2021-10-15 16:50:09

by Fabio M. De Francesco

[permalink] [raw]
Subject: Re: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement

On Thursday, October 14, 2021 4:40:00 PM CEST Saurav Girepunje wrote:
> Remove goto statement where function simply return value without doing
> any cleanup action.
>
> Simplify the return using goto label to avoid unneeded 'if' condition
> check.
>
> Remove the unneeded and redundant check of variable on goto.
>
> Remove the assignment of NULL on local variable.
>
> Signed-off-by: Saurav Girepunje <[email protected]>
> ---
>
> ChangeLog V3:
>
> -Remove goto statement where function simply return value
> without doing any cleanup action.
> -Remove the assignment of NULL on local variable.
> -Replace the goto statement added after the memcpy on V2.
> with return 0 statement.
>
> ChangeLog V2:
>
> -Add goto out after the memcpy for no error case return with
> ret only. On V1 doing free, which was not required for no error
> case.

You still don't explain why you changed v1. You had freed resources on
success path. That was not allowed because you introduced a change in the
logic and a huge bug. Therefore, in v2, you are not merely changing something
that "was not required". Instead you are changing something that is not
permitted.

Thanks,

Fabio



2021-10-22 17:14:34

by Saurav Girepunje

[permalink] [raw]
Subject: Re: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement



On 14/10/21 8:19 pm, Greg KH wrote:
> On Thu, Oct 14, 2021 at 08:10:00PM +0530, Saurav Girepunje wrote:
>> Remove goto statement where function simply return value without doing
>> any cleanup action.
>>
>> Simplify the return using goto label to avoid unneeded 'if' condition
>> check.
>>
>> Remove the unneeded and redundant check of variable on goto.
>>
>> Remove the assignment of NULL on local variable.
>
> You are saying _what_ you are doing here, but not _why_ you are doing
> this. For example, this last sentance does not make sense, why would
> you want to do such a thing (hint, I know, but you need to explain it in
> the changelog...)
>
> It's getting better, but the changelog still needs work. Often times
> that's the hardest part of writing a kernel patch.
>
> thanks,
>
> greg k-h
>

Thanks Greg for review. I will work on changelog and will send v4.

Regards,
Saurav

2021-10-22 17:15:59

by Saurav Girepunje

[permalink] [raw]
Subject: Re: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement



On 14/10/21 8:27 pm, Dan Carpenter wrote:
> On Thu, Oct 14, 2021 at 08:10:00PM +0530, Saurav Girepunje wrote:
>> .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 29 ++++++++-----------
>> 1 file changed, 12 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
>> index 0868f56e2979..217b86bfb722 100644
>> --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
>> +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
>> @@ -2281,19 +2281,16 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str
>> struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter);
>>
>> if (!name) {
>> - ret = -EINVAL;
>> - goto out;
>> + return -EINVAL;
>> }
>
> You need to delete the curly braces, otherwise your patch will introduce
> a checkpatch warning. Same below as well.
>
> regards,
> dan carpenter
>

Ok, I will update patch for this and will send another version.
Thanks Dan for reviewing the patch.

Regards,
Saurav

2021-10-22 17:21:26

by Saurav Girepunje

[permalink] [raw]
Subject: Re: [PATCH v3] staging: rtl8723bs: os_dep: simplify the return statement



On 15/10/21 2:45 pm, Fabio M. De Francesco wrote:
> On Thursday, October 14, 2021 4:40:00 PM CEST Saurav Girepunje wrote:
>> Remove goto statement where function simply return value without doing
>> any cleanup action.
>>
>> Simplify the return using goto label to avoid unneeded 'if' condition
>> check.
>>
>> Remove the unneeded and redundant check of variable on goto.
>>
>> Remove the assignment of NULL on local variable.
>>
>> Signed-off-by: Saurav Girepunje <[email protected]>
>> ---
>>
>> ChangeLog V3:
>>
>> -Remove goto statement where function simply return value
>> without doing any cleanup action.
>> -Remove the assignment of NULL on local variable.
>> -Replace the goto statement added after the memcpy on V2.
>> with return 0 statement.
>>
>> ChangeLog V2:
>>
>> -Add goto out after the memcpy for no error case return with
>> ret only. On V1 doing free, which was not required for no error
>> case.
>
> You still don't explain why you changed v1. You had freed resources on
> success path.
"On V1 doing free" I will add more information on changelog.
That was not allowed because you introduced a change in the
> logic and a huge bug. Therefore, in v2, you are not merely changing something
> that "was not required". Instead you are changing something that is not
> permitted.
>
> Thanks,
>
> Fabio
>
>
>
Thanks Fabio for review.

Regards,
Saurav