On 10/10/21 12:54 pm, Fabio M. De Francesco wrote: > On Sunday, October 10, 2021 7:06:05 AM CEST Saurav Girepunje wrote: >> Remove the unneeded and redundant check of variable on goto out. >> Simplify the return using multiple goto label to avoid >> unneeded check. >> >> Signed-off-by: Saurav Girepunje <saurav.girepunje@xxxxxxxxx> >> --- >> >> ChangeLog V2: >> -Add goto out after the memcpy for no error case return with >> ret only. Free is not required on no error case. >> >> ChangeLog V1: >> -Remove the unneeded and redundant check of variable on >> goto out. >> -Simplify the return using multiple goto label to avoid >> unneeded check. >> >> .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 22 +++++++++---------- >> 1 file changed, 10 insertions(+), 12 deletions(-) >> >> diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/ > staging/rtl8723bs/os_dep/ioctl_cfg80211.c >> index 0868f56e2979..ae9579dc0848 100644 >> --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c >> +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c >> @@ -2312,7 +2312,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_zmalloc; >> } >> >> mon_wdev->wiphy = padapter->rtw_wdev->wiphy; >> @@ -2322,23 +2322,21 @@ 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_register; >> } >> >> *ndev = pwdev_priv->pmon_ndev = mon_ndev; >> memcpy(pwdev_priv->ifname_mon, name, IFNAMSIZ+1); >> + goto out; > > I think this is the right thing to do in order to remove the bug you > introduced in v1. Well done. > Most of the people suggesting to use return 0 from here instead of goto. I will send another patch. >> >> -out: >> - if (ret && mon_wdev) { >> - kfree(mon_wdev); >> - mon_wdev = NULL; >> - } >> - >> - if (ret && mon_ndev) { >> - free_netdev(mon_ndev); >> - *ndev = mon_ndev = NULL; >> - } >> +err_register: >> + kfree(mon_wdev); >> + mon_wdev = NULL; >> >> +err_zmalloc: >> + free_netdev(mon_ndev); >> + *ndev = mon_ndev = NULL; > > Not sure about what the Linux coding guidelines say, but I think that > assigning NULL to local (on stack) pointers (mon_wdev, mon_ndev) at this > point is unnecessary. There is no risk of reusing them after the "out" > labelled block, because at function exit they are destroyed when the stack is > unwound. > > If you decide to remove these assignments, take care to leave "*ndev = NULL;" > as-is (why?). > Yes, This is also improvement needed on this function. > Aside from this minor objection... > > Acked-by: Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx> > > Thanks, > > Fabio > >> +out: >> return ret; >> } >> >> -- >> 2.32.0 >> >> >> > > > > Regards, Saurav