Replace use of kernel_thread() with kthread_run(), as the former is deprecated. Signed-off-by: Peter Teoh diff --git a/drivers/staging/rt2870/common/2870_rtmp_init.c b/drivers/staging/rt2870/common/2870_rtmp_init.c index 9f5143b..9a81d0e 100644 --- a/drivers/staging/rt2870/common/2870_rtmp_init.c +++ b/drivers/staging/rt2870/common/2870_rtmp_init.c @@ -765,7 +765,7 @@ NDIS_STATUS CreateThreads( { PRTMP_ADAPTER pAd = net_dev->ml_priv; POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; - pid_t pid_number = -1; + struct task_struct *tsk; //init_MUTEX(&(pAd->usbdev_semaphore)); @@ -780,35 +780,38 @@ NDIS_STATUS CreateThreads( // Creat MLME Thread pObj->MLMEThr_pid= THREAD_PID_INIT_VALUE; - pid_number = kernel_thread(MlmeThread, pAd, CLONE_VM); - if (pid_number < 0) - { + tsk = kthread_run(MlmeThread, pAd, pAd->net_dev->name); + + if (IS_ERR(tsk)) { printk (KERN_WARNING "%s: unable to start Mlme thread\n",pAd->net_dev->name); return NDIS_STATUS_FAILURE; } - pObj->MLMEThr_pid = GET_PID(pid_number); + + pObj->MLMEThr_pid = get_pid(task_pid(tsk)); // Wait for the thread to start wait_for_completion(&(pAd->mlmeComplete)); // Creat Command Thread pObj->RTUSBCmdThr_pid= THREAD_PID_INIT_VALUE; - pid_number = kernel_thread(RTUSBCmdThread, pAd, CLONE_VM); - if (pid_number < 0) + tsk = kthread_run(RTUSBCmdThread, pAd, pAd->net_dev->name); + + if (IS_ERR(tsk) < 0) { printk (KERN_WARNING "%s: unable to start RTUSBCmd thread\n",pAd->net_dev->name); return NDIS_STATUS_FAILURE; } - pObj->RTUSBCmdThr_pid = GET_PID(pid_number); + + pObj->RTUSBCmdThr_pid = get_pid(task_pid(tsk)); wait_for_completion(&(pAd->CmdQComplete)); pObj->TimerQThr_pid= THREAD_PID_INIT_VALUE; - pid_number = kernel_thread(TimerQThread, pAd, CLONE_VM); - if (pid_number < 0) + tsk = kthread_run(TimerQThread, pAd, pAd->net_dev->name); + if (IS_ERR(tsk) < 0) { printk (KERN_WARNING "%s: unable to start TimerQThread\n",pAd->net_dev->name); return NDIS_STATUS_FAILURE; } - pObj->TimerQThr_pid = GET_PID(pid_number); + pObj->TimerQThr_pid = get_pid(task_pid(tsk)); // Wait for the thread to start wait_for_completion(&(pAd->TimerQComplete)); diff --git a/drivers/staging/rt2870/rt_linux.h b/drivers/staging/rt2870/rt_linux.h index 859f9ce..9a8ed1b 100644 --- a/drivers/staging/rt2870/rt_linux.h +++ b/drivers/staging/rt2870/rt_linux.h @@ -44,6 +44,7 @@ #include #include #include +#include #include #include diff --git a/drivers/staging/usbip/usbip_common.c b/drivers/staging/usbip/usbip_common.c index 22f93dd..3bd85b5 100644 --- a/drivers/staging/usbip/usbip_common.c +++ b/drivers/staging/usbip/usbip_common.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include @@ -406,16 +407,16 @@ void usbip_start_threads(struct usbip_device *ud) /* * threads are invoked per one device (per one connection). */ - int retval; + struct task_struct *tsk; - retval = kernel_thread(usbip_thread, (void *)&ud->tcp_rx, 0); - if (retval < 0) { + tsk = kthread_run(usbip_thread, (void *)&ud->tcp_rx, "usbip_tcp_rx"); + if (IS_ERR(tsk) < 0) { printk(KERN_ERR "Creating tcp_rx thread for ud %p failed.\n", ud); return; } - retval = kernel_thread(usbip_thread, (void *)&ud->tcp_tx, 0); - if (retval < 0) { + tsk = kthread_run(usbip_thread, (void *)&ud->tcp_tx, "usbip_tcp_tx"); + if (IS_ERR(tsk) < 0) { printk(KERN_ERR "Creating tcp_tx thread for ud %p failed.\n", ud); return;