diff options
Diffstat (limited to 'drivers/staging/rt2870/2870_main_dev.c')
-rw-r--r-- | drivers/staging/rt2870/2870_main_dev.c | 67 |
1 files changed, 22 insertions, 45 deletions
diff --git a/drivers/staging/rt2870/2870_main_dev.c b/drivers/staging/rt2870/2870_main_dev.c index 04c764d..9d59e31 100644 --- a/drivers/staging/rt2870/2870_main_dev.c +++ b/drivers/staging/rt2870/2870_main_dev.c @@ -265,7 +265,7 @@ INT MlmeThread( */ DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__func__)); - pObj->MLMEThr_pid = THREAD_PID_INIT_VALUE; + pObj->MLMEThr_task = NULL; complete_and_exit (&pAd->mlmeComplete, 0); return 0; @@ -373,7 +373,7 @@ INT RTUSBCmdThread( */ DBGPRINT(RT_DEBUG_TRACE,( "<---RTUSBCmdThread\n")); - pObj->RTUSBCmdThr_pid = THREAD_PID_INIT_VALUE; + pObj->RTUSBCmdThr_task = NULL; complete_and_exit (&pAd->CmdQComplete, 0); return 0; @@ -467,7 +467,7 @@ INT TimerQThread( */ DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__func__)); - pObj->TimerQThr_pid = THREAD_PID_INIT_VALUE; + pObj->TimerQThr_task = NULL; complete_and_exit(&pAd->TimerQComplete, 0); return 0; @@ -944,69 +944,46 @@ VOID RT28xxThreadTerminate( RTUSBCancelPendingIRPs(pAd); // Terminate Threads - CHECK_PID_LEGALITY(pObj->TimerQThr_pid) + BUG_ON(pObj->TimerQThr_task == NULL); + CHECK_PID_LEGALITY(task_pid(pObj->TimerQThr_task)) { POS_COOKIE pObj = (POS_COOKIE)pAd->OS_Cookie; - printk("Terminate the TimerQThr_pid=%d!\n", GET_PID_NUMBER(pObj->TimerQThr_pid)); + printk(KERN_DEBUG "Terminate the TimerQThr pid=%d!\n", + pid_nr(task_pid(pObj->TimerQThr_task))); mb(); pAd->TimerFunc_kill = 1; mb(); - ret = KILL_THREAD_PID(pObj->TimerQThr_pid, SIGTERM, 1); - if (ret) - { - printk(KERN_WARNING "%s: unable to stop TimerQThread, pid=%d, ret=%d!\n", - pAd->net_dev->name, GET_PID_NUMBER(pObj->TimerQThr_pid), ret); - } - else - { - wait_for_completion(&pAd->TimerQComplete); - pObj->TimerQThr_pid = THREAD_PID_INIT_VALUE; - } + kthread_stop(pObj->TimerQThr_task); + pObj->TimerQThr_task = NULL; } - CHECK_PID_LEGALITY(pObj->MLMEThr_pid) + BUG_ON(pObj->MLMEThr_task == NULL); + CHECK_PID_LEGALITY(task_pid(pObj->MLMEThr_task)) { - printk("Terminate the MLMEThr_pid=%d!\n", GET_PID_NUMBER(pObj->MLMEThr_pid)); + printk(KERN_DEBUG "Terminate the MLMEThr pid=%d!\n", + pid_nr(task_pid(pObj->MLMEThr_task))); mb(); pAd->mlme_kill = 1; //RT28XX_MLME_HANDLER(pAd); mb(); - ret = KILL_THREAD_PID(pObj->MLMEThr_pid, SIGTERM, 1); - if (ret) - { - printk (KERN_WARNING "%s: unable to Mlme thread, pid=%d, ret=%d!\n", - pAd->net_dev->name, GET_PID_NUMBER(pObj->MLMEThr_pid), ret); - } - else - { - //wait_for_completion (&pAd->notify); - wait_for_completion (&pAd->mlmeComplete); - pObj->MLMEThr_pid = THREAD_PID_INIT_VALUE; - } + kthread_stop(pObj->MLMEThr_task); + pObj->MLMEThr_task = NULL; } - CHECK_PID_LEGALITY(pObj->RTUSBCmdThr_pid) + BUG_ON(pObj->RTUSBCmdThr_task == NULL); + CHECK_PID_LEGALITY(task_pid(pObj->RTUSBCmdThr_task)) { - printk("Terminate the RTUSBCmdThr_pid=%d!\n", GET_PID_NUMBER(pObj->RTUSBCmdThr_pid)); + printk(KERN_DEBUG "Terminate the RTUSBCmdThr pid=%d!\n", + pid_nr(task_pid(pObj->RTUSBCmdThr_task))); mb(); NdisAcquireSpinLock(&pAd->CmdQLock); pAd->CmdQ.CmdQState = RT2870_THREAD_STOPED; NdisReleaseSpinLock(&pAd->CmdQLock); mb(); //RTUSBCMDUp(pAd); - ret = KILL_THREAD_PID(pObj->RTUSBCmdThr_pid, SIGTERM, 1); - if (ret) - { - printk(KERN_WARNING "%s: unable to RTUSBCmd thread, pid=%d, ret=%d!\n", - pAd->net_dev->name, GET_PID_NUMBER(pObj->RTUSBCmdThr_pid), ret); - } - else - { - //wait_for_completion (&pAd->notify); - wait_for_completion (&pAd->CmdQComplete); - pObj->RTUSBCmdThr_pid = THREAD_PID_INIT_VALUE; - } + kthread_stop(pObj->RTUSBCmdThr_task); + pObj->RTUSBCmdThr_task = NULL; } @@ -1067,7 +1044,7 @@ BOOLEAN RT28XXChipsetCheck( if (dev_p->descriptor.idVendor == rtusb_usb_id[i].idVendor && dev_p->descriptor.idProduct == rtusb_usb_id[i].idProduct) { - printk("rt2870: idVendor = 0x%x, idProduct = 0x%x\n", + printk(KERN_DEBUG "rt2870: idVendor = 0x%x, idProduct = 0x%x\n", dev_p->descriptor.idVendor, dev_p->descriptor.idProduct); break; } |