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; -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; +out: return ret; } -- 2.32.0