staging: brcm80211: fix rtnl_lock issue when bringing down brcmfmac
When bringing down the netdevice interface a deadlock occurred sporadically due to the rtnl_lock being held by a task that was waiting for another task trying to get the lock. This patch fixes that issue. Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
60be7ec509
commit
183eeb985a
@@ -3189,7 +3189,14 @@ static void brcmf_term_iscan(struct brcmf_cfg80211_priv *cfg_priv)
|
||||
if (cfg_priv->iscan_on && iscan->tsk) {
|
||||
iscan->state = WL_ISCAN_STATE_IDLE;
|
||||
send_sig(SIGTERM, iscan->tsk, 1);
|
||||
|
||||
/*
|
||||
* The iscan task may want to acquire the rtnl_lock
|
||||
* so release it here upon stopping the task.
|
||||
*/
|
||||
rtnl_unlock();
|
||||
kthread_stop(iscan->tsk);
|
||||
rtnl_lock();
|
||||
iscan->tsk = NULL;
|
||||
|
||||
/* Abort iscan running in FW */
|
||||
|
Reference in New Issue
Block a user