mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
brcmfmac: use lock in brcmf_fws_del_interface()
When deleting an interface in firmware-signalling module it will clear any destination descriptors. To avoid concurrency issues it should take the lock using brcmf_fws_lock(). Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a5e9d805f9
commit
6d421e54c2
@ -1821,14 +1821,17 @@ void brcmf_fws_add_interface(struct brcmf_if *ifp)
|
||||
void brcmf_fws_del_interface(struct brcmf_if *ifp)
|
||||
{
|
||||
struct brcmf_fws_mac_descriptor *entry = ifp->fws_desc;
|
||||
ulong flags;
|
||||
|
||||
brcmf_dbg(TRACE, "enter: idx=%d\n", ifp->bssidx);
|
||||
if (!entry)
|
||||
return;
|
||||
|
||||
brcmf_fws_lock(ifp->drvr, flags);
|
||||
ifp->fws_desc = NULL;
|
||||
brcmf_fws_clear_mac_descriptor(entry);
|
||||
brcmf_fws_cleanup(ifp->drvr->fws, ifp->ifidx);
|
||||
brcmf_fws_unlock(ifp->drvr, flags);
|
||||
}
|
||||
|
||||
static void brcmf_fws_dequeue_worker(struct work_struct *worker)
|
||||
|
Loading…
Reference in New Issue
Block a user