summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/brcm80211/brcmfmac
diff options
context:
space:
mode:
authorHante Meuleman <meuleman@broadcom.com>2012-11-06 00:22:30 (GMT)
committerJohn W. Linville <linville@tuxdriver.com>2012-11-14 19:56:03 (GMT)
commit817b178c83e339f908b9f215ad884834e8710963 (patch)
treebce5ecb304d39a3ce4934b5f4e4231737f6c0c8f /drivers/net/wireless/brcm80211/brcmfmac
parent6034d0a19175a3b898dc9f3ee5740275620969a2 (diff)
downloadlinux-fsl-qoriq-817b178c83e339f908b9f215ad884834e8710963.tar.xz
brcmfmac: on halting driver check before release or free.
brcmf_netdev_stop shall first check bus_if status before bringing down cfg80211. brcmf_detach shall first check if driver is allocated. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Signed-off-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index a0d8950..2bb1207 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -600,10 +600,12 @@ static int brcmf_netdev_stop(struct net_device *ndev)
struct brcmf_pub *drvr = ifp->drvr;
brcmf_dbg(TRACE, "Enter\n");
- brcmf_cfg80211_down(drvr->config);
+
if (drvr->bus_if->drvr_up == 0)
return 0;
+ brcmf_cfg80211_down(drvr->config);
+
/* Set state and stop OS transmissions */
drvr->bus_if->drvr_up = false;
netif_stop_queue(ndev);
@@ -905,6 +907,8 @@ void brcmf_detach(struct device *dev)
brcmf_dbg(TRACE, "Enter\n");
+ if (drvr == NULL)
+ return;
/* make sure primary interface removed last */
for (i = BRCMF_MAX_IFS-1; i > -1; i--)