From af73713642c1c02e5afefb0f807f406e835c0b7f Mon Sep 17 00:00:00 2001 From: nohee ko Date: Tue, 12 Oct 2010 13:33:29 -0700 Subject: 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 Signed-off-by: Greg Kroah-Hartman --- drivers/staging/brcm80211/brcmfmac/wl_iw.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/staging/brcm80211/brcmfmac/wl_iw.c') 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; } -- cgit v1.2.3