[PATCH 8/9] staging: brcm80211: remove kernel_thread() for wl_iscan_thread.

Jason Cooper jason at lakedaemon.net
Wed Oct 6 21:40:12 UTC 2010


Signed-off-by: Jason Cooper <jason at lakedaemon.net>
---
 drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
index ac09fd6..5ee2c86 100644
--- a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
@@ -2969,14 +2969,16 @@ static void wl_iscan_timer(unsigned long data)
 static int32 wl_invoke_iscan(struct wl_priv *wl)
 {
 	struct wl_iscan_ctrl *iscan = wl_to_iscan(wl);
+	struct task_struct *tsk;
 	int err = 0;
 
 	if (wl->iscan_on && iscan->pid < 0) {
 		iscan->state = WL_ISCAN_STATE_IDLE;
 		sema_init(&iscan->sync, 0);
 		init_completion(&iscan->exited);
-		iscan->pid = kernel_thread(wl_iscan_thread, iscan, 0);
-		if (unlikely(iscan->pid < 0)) {
+		tsk = kthread_run(wl_iscan_thread, iscan, "wl_iscan");
+		iscan->pid = (long)get_pid(task_pid(tsk));
+		if (IS_ERR(tsk)) {
 			WL_ERR(("Could not create iscan thread\n"));
 			return -ENOMEM;
 		}
-- 
1.6.3.3




More information about the devel mailing list