summaryrefslogtreecommitdiff
path: root/drivers/staging/brcm80211/brcmfmac/wl_iw.c
diff options
context:
space:
mode:
authornohee ko <noheek@broadcom.com>2010-10-12 13:33:29 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-12 14:07:45 -0700
commitaf73713642c1c02e5afefb0f807f406e835c0b7f (patch)
treef7ab5cb8bba046eff83db1bc60eed6290f350ec0 /drivers/staging/brcm80211/brcmfmac/wl_iw.c
parentc11b0ef8fe171f0b50999d61e401e4908980a774 (diff)
downloadlinux-3.10-af73713642c1c02e5afefb0f807f406e835c0b7f.tar.gz
linux-3.10-af73713642c1c02e5afefb0f807f406e835c0b7f.tar.bz2
linux-3.10-af73713642c1c02e5afefb0f807f406e835c0b7f.zip
staging: brcm80211: bug fix- rmmod hang problem
Bug fix - rmmod hang problem. Can keep both of kthread & down_interruptible. And in the meantime, can terminate the threads properly during rmmod process. Signed-off-by: Nohee Ko <noheek@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/brcm80211/brcmfmac/wl_iw.c')
-rw-r--r--drivers/staging/brcm80211/brcmfmac/wl_iw.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/brcm80211/brcmfmac/wl_iw.c b/drivers/staging/brcm80211/brcmfmac/wl_iw.c
index 0593bb57d47..6a27f9b938d 100644
--- a/drivers/staging/brcm80211/brcmfmac/wl_iw.c
+++ b/drivers/staging/brcm80211/brcmfmac/wl_iw.c
@@ -1177,6 +1177,7 @@ static int _iscan_sysioc_thread(void *data)
iscan_info_t *iscan = (iscan_info_t *) data;
static bool iscan_pass_abort = false;
+ allow_signal(SIGTERM);
status = WL_SCAN_RESULTS_PARTIAL;
while (down_interruptible(&iscan->sysioc_sem) == 0) {
if (kthread_should_stop())
@@ -3744,6 +3745,7 @@ void wl_iw_detach(void)
if (!iscan)
return;
if (iscan->sysioc_tsk) {
+ KILL_PROC(iscan->sysioc_tsk->pid, SIGTERM);
kthread_stop(iscan->sysioc_tsk);
iscan->sysioc_tsk = NULL;
}