Skip to content

Commit

Permalink
staging: brcm80211: remove NULL pointer checks before calling kfree
Browse files Browse the repository at this point in the history
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 <rvossen@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Arend van Spriel authored and Greg Kroah-Hartman committed Mar 1, 2011
1 parent 6cab915 commit 7c0e45d
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 85 deletions.
85 changes: 15 additions & 70 deletions drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down Expand Up @@ -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);
Expand Down
4 changes: 1 addition & 3 deletions drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
3 changes: 0 additions & 3 deletions drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
6 changes: 2 additions & 4 deletions drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
3 changes: 1 addition & 2 deletions drivers/staging/brcm80211/brcmsmac/wlc_channel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 0 additions & 3 deletions drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 7c0e45d

Please sign in to comment.