aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2012-02-09 15:09:01 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-02-22 14:48:51 -0500
commit89fdb468e201c16b31d3337b68993bc9f763a5a0 (patch)
tree1a3af40132904e807243375ab4c06e8b034e9dfb /drivers
parent2315992c2a6f395dd3dfd4ba50a164d5f3ded84d (diff)
brcm80211: fmac: make sure cancel_work_sync only called after INIT_WORK
INIT_WORK only gets called after brcmf_proto_attach returns success. This dependency should be annotated in brcmf_detach to avoid any error. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
index db2df1f1e6b2..eff0073879c7 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
@@ -1109,13 +1109,13 @@ void brcmf_detach(struct device *dev)
1109 if (drvr->iflist[i]) 1109 if (drvr->iflist[i])
1110 brcmf_del_if(drvr, i); 1110 brcmf_del_if(drvr, i);
1111 1111
1112 cancel_work_sync(&drvr->setmacaddr_work);
1113 cancel_work_sync(&drvr->multicast_work);
1114
1115 brcmf_bus_detach(drvr); 1112 brcmf_bus_detach(drvr);
1116 1113
1117 if (drvr->prot) 1114 if (drvr->prot) {
1115 cancel_work_sync(&drvr->setmacaddr_work);
1116 cancel_work_sync(&drvr->multicast_work);
1118 brcmf_proto_detach(drvr); 1117 brcmf_proto_detach(drvr);
1118 }
1119 1119
1120 bus_if->drvr = NULL; 1120 bus_if->drvr = NULL;
1121 kfree(drvr); 1121 kfree(drvr);