[PATCH 6/9] staging: brcm80211: remove kernel_thread() for _iscan_sysioc_thread.

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


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

diff --git a/drivers/staging/brcm80211/brcmfmac/wl_iw.c b/drivers/staging/brcm80211/brcmfmac/wl_iw.c
index c105b7f..ed1c596 100644
--- a/drivers/staging/brcm80211/brcmfmac/wl_iw.c
+++ b/drivers/staging/brcm80211/brcmfmac/wl_iw.c
@@ -18,6 +18,7 @@
 
 #include <typedefs.h>
 #include <linuxver.h>
+#include <linux/kthread.h>
 #include <osl.h>
 
 #include <bcmutils.h>
@@ -3700,6 +3701,7 @@ int wl_iw_attach(struct net_device *dev, void *dhdp)
 	wl_iw_t *iw;
 #if defined(WL_IW_USE_ISCAN)
 	iscan_info_t *iscan = NULL;
+	struct task_struct *tsk;
 
 	if (!dev)
 		return 0;
@@ -3739,8 +3741,9 @@ int wl_iw_attach(struct net_device *dev, void *dhdp)
 
 	sema_init(&iscan->sysioc_sem, 0);
 	init_completion(&iscan->sysioc_exited);
-	iscan->sysioc_pid = kernel_thread(_iscan_sysioc_thread, iscan, 0);
-	if (iscan->sysioc_pid < 0)
+	tsk = kthread_run(_iscan_sysioc_thread, iscan, "_iscan_sysioc");
+	iscan->sysioc_pid = (long)get_pid(task_pid(tsk));
+	if (IS_ERR(tsk))
 		return -ENOMEM;
 #endif				/* defined(WL_IW_USE_ISCAN) */
 
-- 
1.6.3.3




More information about the devel mailing list