kfree function can handle NULL pointer as passed parameter so there
is no need for the calling function to check for this before calling
kfree.

Reviewed-by: Roland Vossen <[email protected]>
Reviewed-by: Brett Rudley <[email protected]>
Signed-off-by: Arend van Spriel <[email protected]>
---
 drivers/staging/brcm80211/brcmsmac/wlc_alloc.c    |   85 ++++-----------------
 drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c    |    4 +-
 drivers/staging/brcm80211/brcmsmac/wlc_antsel.c   |    3 -
 drivers/staging/brcm80211/brcmsmac/wlc_bmac.c     |    6 +-
 drivers/staging/brcm80211/brcmsmac/wlc_channel.c  |    3 +-
 drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c |    3 -
 6 files changed, 19 insertions(+), 85 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
index 8d6e0ea..fecafc3 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
@@ -146,17 +146,8 @@ static void wlc_bsscfg_mfree(wlc_bsscfg_t *cfg)
        if (cfg == NULL)
                return;
 
-       if (cfg->maclist) {
-               kfree(cfg->maclist);
-               cfg->maclist = NULL;
-       }
-
-       if (cfg->current_bss != NULL) {
-               wlc_bss_info_t *current_bss = cfg->current_bss;
-               kfree(current_bss);
-               cfg->current_bss = NULL;
-       }
-
+       kfree(cfg->maclist);
+       kfree(cfg->current_bss);
        kfree(cfg);
 }
 
@@ -310,65 +301,19 @@ void wlc_detach_mfree(struct wlc_info *wlc)
        if (wlc == NULL)
                return;
 
-       if (wlc->modulecb) {
-               kfree(wlc->modulecb);
-               wlc->modulecb = NULL;
-       }
-
-       if (wlc->default_bss) {
-               kfree(wlc->default_bss);
-               wlc->default_bss = NULL;
-       }
-       if (wlc->cfg) {
-               wlc_bsscfg_mfree(osh, wlc->cfg);
-               wlc->cfg = NULL;
-       }
-
-       if (wlc->pkt_callback && wlc->pub && wlc->pub->tunables) {
-               kfree(wlc->pkt_callback);
-               wlc->pkt_callback = NULL;
-       }
-
-       if (wlc->wsec_def_keys[0])
-               kfree(wlc->wsec_def_keys[0]);
-       if (wlc->protection) {
-               kfree(wlc->protection);
-               wlc->protection = NULL;
-       }
-
-       if (wlc->stf) {
-               kfree(wlc->stf);
-               wlc->stf = NULL;
-       }
-
-       if (wlc->bandstate[0])
-               kfree(wlc->bandstate[0]);
-
-       if (wlc->corestate) {
-               if (wlc->corestate->macstat_snapshot) {
-                       kfree(wlc->corestate->macstat_snapshot);
-                       wlc->corestate->macstat_snapshot = NULL;
-               }
-               kfree(wlc->corestate);
-               wlc->corestate = NULL;
-       }
-
-       if (wlc->pub) {
-               /* free pub struct */
-               wlc_pub_mfree(osh, wlc->pub);
-               wlc->pub = NULL;
-       }
-
-       if (wlc->hw) {
-               if (wlc->hw->bandstate[0]) {
-                       kfree(wlc->hw->bandstate[0]);
-                       wlc->hw->bandstate[0] = NULL;
-               }
-
-               /* free hw struct */
-               kfree(wlc->hw);
-               wlc->hw = NULL;
-       }
+       wlc_bsscfg_mfree(wlc->cfg);
+       wlc_pub_mfree(wlc->pub);
+       kfree(wlc->modulecb);
+       kfree(wlc->default_bss);
+       kfree(wlc->pkt_callback);
+       kfree(wlc->wsec_def_keys[0]);
+       kfree(wlc->protection);
+       kfree(wlc->stf);
+       kfree(wlc->bandstate[0]);
+       kfree(wlc->corestate->macstat_snapshot);
+       kfree(wlc->corestate);
+       kfree(wlc->hw->bandstate[0]);
+       kfree(wlc->hw);
 
        /* free the wlc */
        kfree(wlc);
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
index eff174d..19e22c8 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
@@ -232,9 +232,7 @@ void wlc_ampdu_detach(struct ampdu_info *ampdu)
 
        /* free all ini's which were to be freed on callbacks which were never 
called */
        for (i = 0; i < AMPDU_INI_FREE; i++) {
-               if (ampdu->ini_free[i]) {
-                       kfree(ampdu->ini_free[i]);
-               }
+               kfree(ampdu->ini_free[i]);
        }
 
        wlc_module_unregister(ampdu->wlc->pub, "ampdu", ampdu);
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
index 8c59898..0a52989 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
@@ -161,9 +161,6 @@ struct antsel_info *wlc_antsel_attach(struct wlc_info *wlc,
 
 void wlc_antsel_detach(struct antsel_info *asi)
 {
-       if (!asi)
-               return;
-
        kfree(asi);
 }
 
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
index 1a49c6e..353f1ea 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
@@ -1044,10 +1044,8 @@ int wlc_bmac_detach(struct wlc_info *wlc)
        wlc_phy_shim_detach(wlc_hw->physhim);
 
        /* free vars */
-       if (wlc_hw->vars) {
-               kfree(wlc_hw->vars);
-               wlc_hw->vars = NULL;
-       }
+       kfree(wlc_hw->vars);
+       wlc_hw->vars = NULL;
 
        if (wlc_hw->sih) {
                si_detach(wlc_hw->sih);
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_channel.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_channel.c
index 8e2a384..71731a4 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_channel.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_channel.c
@@ -683,8 +683,7 @@ wlc_cm_info_t *wlc_channel_mgr_attach(struct wlc_info *wlc)
 
 void wlc_channel_mgr_detach(wlc_cm_info_t *wlc_cm)
 {
-       if (wlc_cm)
-               kfree(wlc_cm);
+       kfree(wlc_cm);
 }
 
 u8 wlc_channel_locale_flags_in_band(wlc_cm_info_t *wlc_cm, uint bandunit)
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
index fa3f73f..95aafdd 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
@@ -83,9 +83,6 @@ wlc_phy_shim_info_t *wlc_phy_shim_attach(struct wlc_hw_info 
*wlc_hw,
 
 void wlc_phy_shim_detach(wlc_phy_shim_info_t *physhim)
 {
-       if (!physhim)
-               return;
-
        kfree(physhim);
 }
 
-- 
1.7.1


_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to