diff options
author | Franky Lin <frankyl@broadcom.com> | 2012-02-09 15:09:01 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-02-22 14:48:51 -0500 |
commit | 89fdb468e201c16b31d3337b68993bc9f763a5a0 (patch) | |
tree | 1a3af40132904e807243375ab4c06e8b034e9dfb /drivers | |
parent | 2315992c2a6f395dd3dfd4ba50a164d5f3ded84d (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.c | 8 |
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); |