diff options
author | Peter Teoh <htmldeveloper@gmail.com> | 2009-03-20 14:20:23 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-04-03 17:53:31 -0400 |
commit | d44ca7af9e79abf4e80514583734cffed1117ee1 (patch) | |
tree | 8d4bf6b25c63f892074f086f0aacf5034fdfe831 /drivers/staging/rt2870 | |
parent | a955dc39c0dd14e7f85c3d288478294fa133ea90 (diff) |
Staging: rt2870: Removal of kernel_thread() API
Replacing the use of kernel_thread() with kthread_run(). But as
kthread_run() returned a task structure, as compared with
kernel_thread() returning a PID, it was found to be more efficient to
store the task structure pointer as a field data instead of PID
pointer. On top of modifying the field to store task structure
pointer, the initialization of the field (assigned to
THREAD_PID_INIT_VALUE) was also found unnecessary - as no where it is
found to be used.
Signed-off-by: Peter Teoh <htmldeveloper@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rt2870')
-rw-r--r-- | drivers/staging/rt2870/2870_main_dev.c | 67 | ||||
-rw-r--r-- | drivers/staging/rt2870/common/2870_rtmp_init.c | 35 | ||||
-rw-r--r-- | drivers/staging/rt2870/common/cmm_data.c | 3 | ||||
-rw-r--r-- | drivers/staging/rt2870/common/rtmp_init.c | 2 | ||||
-rw-r--r-- | drivers/staging/rt2870/common/rtusb_io.c | 3 | ||||
-rw-r--r-- | drivers/staging/rt2870/rt2870.h | 6 | ||||
-rw-r--r-- | drivers/staging/rt2870/rt_linux.h | 11 |
7 files changed, 53 insertions, 74 deletions
diff --git a/drivers/staging/rt2870/2870_main_dev.c b/drivers/staging/rt2870/2870_main_dev.c index 04c764d95d7..9d59e3167fe 100644 --- a/drivers/staging/rt2870/2870_main_dev.c +++ b/drivers/staging/rt2870/2870_main_dev.c | |||
@@ -265,7 +265,7 @@ INT MlmeThread( | |||
265 | */ | 265 | */ |
266 | DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__func__)); | 266 | DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__func__)); |
267 | 267 | ||
268 | pObj->MLMEThr_pid = THREAD_PID_INIT_VALUE; | 268 | pObj->MLMEThr_task = NULL; |
269 | 269 | ||
270 | complete_and_exit (&pAd->mlmeComplete, 0); | 270 | complete_and_exit (&pAd->mlmeComplete, 0); |
271 | return 0; | 271 | return 0; |
@@ -373,7 +373,7 @@ INT RTUSBCmdThread( | |||
373 | */ | 373 | */ |
374 | DBGPRINT(RT_DEBUG_TRACE,( "<---RTUSBCmdThread\n")); | 374 | DBGPRINT(RT_DEBUG_TRACE,( "<---RTUSBCmdThread\n")); |
375 | 375 | ||
376 | pObj->RTUSBCmdThr_pid = THREAD_PID_INIT_VALUE; | 376 | pObj->RTUSBCmdThr_task = NULL; |
377 | 377 | ||
378 | complete_and_exit (&pAd->CmdQComplete, 0); | 378 | complete_and_exit (&pAd->CmdQComplete, 0); |
379 | return 0; | 379 | return 0; |
@@ -467,7 +467,7 @@ INT TimerQThread( | |||
467 | */ | 467 | */ |
468 | DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__func__)); | 468 | DBGPRINT(RT_DEBUG_TRACE,( "<---%s\n",__func__)); |
469 | 469 | ||
470 | pObj->TimerQThr_pid = THREAD_PID_INIT_VALUE; | 470 | pObj->TimerQThr_task = NULL; |
471 | 471 | ||
472 | complete_and_exit(&pAd->TimerQComplete, 0); | 472 | complete_and_exit(&pAd->TimerQComplete, 0); |
473 | return 0; | 473 | return 0; |
@@ -944,69 +944,46 @@ VOID RT28xxThreadTerminate( | |||
944 | RTUSBCancelPendingIRPs(pAd); | 944 | RTUSBCancelPendingIRPs(pAd); |
945 | 945 | ||
946 | // Terminate Threads | 946 | // Terminate Threads |
947 | CHECK_PID_LEGALITY(pObj->TimerQThr_pid) | 947 | BUG_ON(pObj->TimerQThr_task == NULL); |
948 | CHECK_PID_LEGALITY(task_pid(pObj->TimerQThr_task)) | ||
948 | { | 949 | { |
949 | POS_COOKIE pObj = (POS_COOKIE)pAd->OS_Cookie; | 950 | POS_COOKIE pObj = (POS_COOKIE)pAd->OS_Cookie; |
950 | 951 | ||
951 | printk("Terminate the TimerQThr_pid=%d!\n", GET_PID_NUMBER(pObj->TimerQThr_pid)); | 952 | printk(KERN_DEBUG "Terminate the TimerQThr pid=%d!\n", |
953 | pid_nr(task_pid(pObj->TimerQThr_task))); | ||
952 | mb(); | 954 | mb(); |
953 | pAd->TimerFunc_kill = 1; | 955 | pAd->TimerFunc_kill = 1; |
954 | mb(); | 956 | mb(); |
955 | ret = KILL_THREAD_PID(pObj->TimerQThr_pid, SIGTERM, 1); | 957 | kthread_stop(pObj->TimerQThr_task); |
956 | if (ret) | 958 | pObj->TimerQThr_task = NULL; |
957 | { | ||
958 | printk(KERN_WARNING "%s: unable to stop TimerQThread, pid=%d, ret=%d!\n", | ||
959 | pAd->net_dev->name, GET_PID_NUMBER(pObj->TimerQThr_pid), ret); | ||
960 | } | ||
961 | else | ||
962 | { | ||
963 | wait_for_completion(&pAd->TimerQComplete); | ||
964 | pObj->TimerQThr_pid = THREAD_PID_INIT_VALUE; | ||
965 | } | ||
966 | } | 959 | } |
967 | 960 | ||
968 | CHECK_PID_LEGALITY(pObj->MLMEThr_pid) | 961 | BUG_ON(pObj->MLMEThr_task == NULL); |
962 | CHECK_PID_LEGALITY(task_pid(pObj->MLMEThr_task)) | ||
969 | { | 963 | { |
970 | printk("Terminate the MLMEThr_pid=%d!\n", GET_PID_NUMBER(pObj->MLMEThr_pid)); | 964 | printk(KERN_DEBUG "Terminate the MLMEThr pid=%d!\n", |
965 | pid_nr(task_pid(pObj->MLMEThr_task))); | ||
971 | mb(); | 966 | mb(); |
972 | pAd->mlme_kill = 1; | 967 | pAd->mlme_kill = 1; |
973 | //RT28XX_MLME_HANDLER(pAd); | 968 | //RT28XX_MLME_HANDLER(pAd); |
974 | mb(); | 969 | mb(); |
975 | ret = KILL_THREAD_PID(pObj->MLMEThr_pid, SIGTERM, 1); | 970 | kthread_stop(pObj->MLMEThr_task); |
976 | if (ret) | 971 | pObj->MLMEThr_task = NULL; |
977 | { | ||
978 | printk (KERN_WARNING "%s: unable to Mlme thread, pid=%d, ret=%d!\n", | ||
979 | pAd->net_dev->name, GET_PID_NUMBER(pObj->MLMEThr_pid), ret); | ||
980 | } | ||
981 | else | ||
982 | { | ||
983 | //wait_for_completion (&pAd->notify); | ||
984 | wait_for_completion (&pAd->mlmeComplete); | ||
985 | pObj->MLMEThr_pid = THREAD_PID_INIT_VALUE; | ||
986 | } | ||
987 | } | 972 | } |
988 | 973 | ||
989 | CHECK_PID_LEGALITY(pObj->RTUSBCmdThr_pid) | 974 | BUG_ON(pObj->RTUSBCmdThr_task == NULL); |
975 | CHECK_PID_LEGALITY(task_pid(pObj->RTUSBCmdThr_task)) | ||
990 | { | 976 | { |
991 | printk("Terminate the RTUSBCmdThr_pid=%d!\n", GET_PID_NUMBER(pObj->RTUSBCmdThr_pid)); | 977 | printk(KERN_DEBUG "Terminate the RTUSBCmdThr pid=%d!\n", |
978 | pid_nr(task_pid(pObj->RTUSBCmdThr_task))); | ||
992 | mb(); | 979 | mb(); |
993 | NdisAcquireSpinLock(&pAd->CmdQLock); | 980 | NdisAcquireSpinLock(&pAd->CmdQLock); |
994 | pAd->CmdQ.CmdQState = RT2870_THREAD_STOPED; | 981 | pAd->CmdQ.CmdQState = RT2870_THREAD_STOPED; |
995 | NdisReleaseSpinLock(&pAd->CmdQLock); | 982 | NdisReleaseSpinLock(&pAd->CmdQLock); |
996 | mb(); | 983 | mb(); |
997 | //RTUSBCMDUp(pAd); | 984 | //RTUSBCMDUp(pAd); |
998 | ret = KILL_THREAD_PID(pObj->RTUSBCmdThr_pid, SIGTERM, 1); | 985 | kthread_stop(pObj->RTUSBCmdThr_task); |
999 | if (ret) | 986 | pObj->RTUSBCmdThr_task = NULL; |
1000 | { | ||
1001 | printk(KERN_WARNING "%s: unable to RTUSBCmd thread, pid=%d, ret=%d!\n", | ||
1002 | pAd->net_dev->name, GET_PID_NUMBER(pObj->RTUSBCmdThr_pid), ret); | ||
1003 | } | ||
1004 | else | ||
1005 | { | ||
1006 | //wait_for_completion (&pAd->notify); | ||
1007 | wait_for_completion (&pAd->CmdQComplete); | ||
1008 | pObj->RTUSBCmdThr_pid = THREAD_PID_INIT_VALUE; | ||
1009 | } | ||
1010 | } | 987 | } |
1011 | 988 | ||
1012 | 989 | ||
@@ -1067,7 +1044,7 @@ BOOLEAN RT28XXChipsetCheck( | |||
1067 | if (dev_p->descriptor.idVendor == rtusb_usb_id[i].idVendor && | 1044 | if (dev_p->descriptor.idVendor == rtusb_usb_id[i].idVendor && |
1068 | dev_p->descriptor.idProduct == rtusb_usb_id[i].idProduct) | 1045 | dev_p->descriptor.idProduct == rtusb_usb_id[i].idProduct) |
1069 | { | 1046 | { |
1070 | printk("rt2870: idVendor = 0x%x, idProduct = 0x%x\n", | 1047 | printk(KERN_DEBUG "rt2870: idVendor = 0x%x, idProduct = 0x%x\n", |
1071 | dev_p->descriptor.idVendor, dev_p->descriptor.idProduct); | 1048 | dev_p->descriptor.idVendor, dev_p->descriptor.idProduct); |
1072 | break; | 1049 | break; |
1073 | } | 1050 | } |
diff --git a/drivers/staging/rt2870/common/2870_rtmp_init.c b/drivers/staging/rt2870/common/2870_rtmp_init.c index 9f5143b3922..cb16d2fcf60 100644 --- a/drivers/staging/rt2870/common/2870_rtmp_init.c +++ b/drivers/staging/rt2870/common/2870_rtmp_init.c | |||
@@ -727,8 +727,8 @@ NDIS_STATUS AdapterBlockAllocateMemory( | |||
727 | 727 | ||
728 | usb_dev = pObj->pUsb_Dev; | 728 | usb_dev = pObj->pUsb_Dev; |
729 | 729 | ||
730 | pObj->MLMEThr_pid = THREAD_PID_INIT_VALUE; | 730 | pObj->MLMEThr_task = NULL; |
731 | pObj->RTUSBCmdThr_pid = THREAD_PID_INIT_VALUE; | 731 | pObj->RTUSBCmdThr_task = NULL; |
732 | 732 | ||
733 | *ppAd = (PVOID)vmalloc(sizeof(RTMP_ADAPTER)); | 733 | *ppAd = (PVOID)vmalloc(sizeof(RTMP_ADAPTER)); |
734 | 734 | ||
@@ -765,7 +765,7 @@ NDIS_STATUS CreateThreads( | |||
765 | { | 765 | { |
766 | PRTMP_ADAPTER pAd = net_dev->ml_priv; | 766 | PRTMP_ADAPTER pAd = net_dev->ml_priv; |
767 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; | 767 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; |
768 | pid_t pid_number = -1; | 768 | struct task_struct *tsk; |
769 | 769 | ||
770 | //init_MUTEX(&(pAd->usbdev_semaphore)); | 770 | //init_MUTEX(&(pAd->usbdev_semaphore)); |
771 | 771 | ||
@@ -779,36 +779,39 @@ NDIS_STATUS CreateThreads( | |||
779 | init_completion (&pAd->TimerQComplete); | 779 | init_completion (&pAd->TimerQComplete); |
780 | 780 | ||
781 | // Creat MLME Thread | 781 | // Creat MLME Thread |
782 | pObj->MLMEThr_pid= THREAD_PID_INIT_VALUE; | 782 | pObj->MLMEThr_task = NULL; |
783 | pid_number = kernel_thread(MlmeThread, pAd, CLONE_VM); | 783 | tsk = kthread_run(MlmeThread, pAd, pAd->net_dev->name); |
784 | if (pid_number < 0) | 784 | |
785 | { | 785 | if (IS_ERR(tsk)) { |
786 | printk (KERN_WARNING "%s: unable to start Mlme thread\n",pAd->net_dev->name); | 786 | printk (KERN_WARNING "%s: unable to start Mlme thread\n",pAd->net_dev->name); |
787 | return NDIS_STATUS_FAILURE; | 787 | return NDIS_STATUS_FAILURE; |
788 | } | 788 | } |
789 | pObj->MLMEThr_pid = GET_PID(pid_number); | 789 | |
790 | pObj->MLMEThr_task = tsk; | ||
790 | // Wait for the thread to start | 791 | // Wait for the thread to start |
791 | wait_for_completion(&(pAd->mlmeComplete)); | 792 | wait_for_completion(&(pAd->mlmeComplete)); |
792 | 793 | ||
793 | // Creat Command Thread | 794 | // Creat Command Thread |
794 | pObj->RTUSBCmdThr_pid= THREAD_PID_INIT_VALUE; | 795 | pObj->RTUSBCmdThr_task = NULL; |
795 | pid_number = kernel_thread(RTUSBCmdThread, pAd, CLONE_VM); | 796 | tsk = kthread_run(RTUSBCmdThread, pAd, pAd->net_dev->name); |
796 | if (pid_number < 0) | 797 | |
798 | if (IS_ERR(tsk) < 0) | ||
797 | { | 799 | { |
798 | printk (KERN_WARNING "%s: unable to start RTUSBCmd thread\n",pAd->net_dev->name); | 800 | printk (KERN_WARNING "%s: unable to start RTUSBCmd thread\n",pAd->net_dev->name); |
799 | return NDIS_STATUS_FAILURE; | 801 | return NDIS_STATUS_FAILURE; |
800 | } | 802 | } |
801 | pObj->RTUSBCmdThr_pid = GET_PID(pid_number); | 803 | |
804 | pObj->RTUSBCmdThr_task = tsk; | ||
802 | wait_for_completion(&(pAd->CmdQComplete)); | 805 | wait_for_completion(&(pAd->CmdQComplete)); |
803 | 806 | ||
804 | pObj->TimerQThr_pid= THREAD_PID_INIT_VALUE; | 807 | pObj->TimerQThr_task = NULL; |
805 | pid_number = kernel_thread(TimerQThread, pAd, CLONE_VM); | 808 | tsk = kthread_run(TimerQThread, pAd, pAd->net_dev->name); |
806 | if (pid_number < 0) | 809 | if (IS_ERR(tsk) < 0) |
807 | { | 810 | { |
808 | printk (KERN_WARNING "%s: unable to start TimerQThread\n",pAd->net_dev->name); | 811 | printk (KERN_WARNING "%s: unable to start TimerQThread\n",pAd->net_dev->name); |
809 | return NDIS_STATUS_FAILURE; | 812 | return NDIS_STATUS_FAILURE; |
810 | } | 813 | } |
811 | pObj->TimerQThr_pid = GET_PID(pid_number); | 814 | pObj->TimerQThr_task = tsk; |
812 | // Wait for the thread to start | 815 | // Wait for the thread to start |
813 | wait_for_completion(&(pAd->TimerQComplete)); | 816 | wait_for_completion(&(pAd->TimerQComplete)); |
814 | 817 | ||
diff --git a/drivers/staging/rt2870/common/cmm_data.c b/drivers/staging/rt2870/common/cmm_data.c index fd809abf6df..f8e0ebd7bca 100644 --- a/drivers/staging/rt2870/common/cmm_data.c +++ b/drivers/staging/rt2870/common/cmm_data.c | |||
@@ -709,9 +709,6 @@ BOOLEAN RTMP_FillTxBlkInfo( | |||
709 | } | 709 | } |
710 | 710 | ||
711 | return TRUE; | 711 | return TRUE; |
712 | |||
713 | FillTxBlkErr: | ||
714 | return FALSE; | ||
715 | } | 712 | } |
716 | 713 | ||
717 | 714 | ||
diff --git a/drivers/staging/rt2870/common/rtmp_init.c b/drivers/staging/rt2870/common/rtmp_init.c index 870a00da3da..099b6a806f8 100644 --- a/drivers/staging/rt2870/common/rtmp_init.c +++ b/drivers/staging/rt2870/common/rtmp_init.c | |||
@@ -3655,7 +3655,7 @@ VOID UserCfgInit( | |||
3655 | #ifdef RALINK_28xx_QA | 3655 | #ifdef RALINK_28xx_QA |
3656 | //pAd->ate.Repeat = 0; | 3656 | //pAd->ate.Repeat = 0; |
3657 | pAd->ate.TxStatus = 0; | 3657 | pAd->ate.TxStatus = 0; |
3658 | pAd->ate.AtePid = THREAD_PID_INIT_VALUE; | 3658 | pAd->ate.AtePid = NULL; |
3659 | #endif // RALINK_28xx_QA // | 3659 | #endif // RALINK_28xx_QA // |
3660 | #endif // RALINK_ATE // | 3660 | #endif // RALINK_ATE // |
3661 | 3661 | ||
diff --git a/drivers/staging/rt2870/common/rtusb_io.c b/drivers/staging/rt2870/common/rtusb_io.c index 6db443e9268..afde136a9a0 100644 --- a/drivers/staging/rt2870/common/rtusb_io.c +++ b/drivers/staging/rt2870/common/rtusb_io.c | |||
@@ -958,7 +958,8 @@ NDIS_STATUS RTUSBEnqueueCmdFromNdis( | |||
958 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; | 958 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; |
959 | 959 | ||
960 | 960 | ||
961 | CHECK_PID_LEGALITY(pObj->RTUSBCmdThr_pid) | 961 | BUG_ON(pObj->RTUSBCmdThr_task == NULL); |
962 | CHECK_PID_LEGALITY(task_pid(pObj->RTUSBCmdThr_task)) | ||
962 | return (NDIS_STATUS_RESOURCES); | 963 | return (NDIS_STATUS_RESOURCES); |
963 | 964 | ||
964 | status = RTMPAllocateMemory((PVOID *)&cmdqelmt, sizeof(CmdQElmt)); | 965 | status = RTMPAllocateMemory((PVOID *)&cmdqelmt, sizeof(CmdQElmt)); |
diff --git a/drivers/staging/rt2870/rt2870.h b/drivers/staging/rt2870/rt2870.h index b8ccc50bbda..5dd15aac9ce 100644 --- a/drivers/staging/rt2870/rt2870.h +++ b/drivers/staging/rt2870/rt2870.h | |||
@@ -577,14 +577,16 @@ VOID RTUSBBulkRxComplete(purbb_t pUrb, struct pt_regs *pt_regs); | |||
577 | #define RTUSBMlmeUp(pAd) \ | 577 | #define RTUSBMlmeUp(pAd) \ |
578 | { \ | 578 | { \ |
579 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \ | 579 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \ |
580 | CHECK_PID_LEGALITY(pObj->MLMEThr_pid) \ | 580 | BUG_ON(pObj->MLMEThr_task == NULL); \ |
581 | CHECK_PID_LEGALITY(task_pid(pObj->MLMEThr_task)) \ | ||
581 | up(&(pAd->mlme_semaphore)); \ | 582 | up(&(pAd->mlme_semaphore)); \ |
582 | } | 583 | } |
583 | 584 | ||
584 | #define RTUSBCMDUp(pAd) \ | 585 | #define RTUSBCMDUp(pAd) \ |
585 | { \ | 586 | { \ |
586 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \ | 587 | POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie; \ |
587 | CHECK_PID_LEGALITY(pObj->RTUSBCmdThr_pid) \ | 588 | BUG_ON(pObj->RTUSBCmdThr_task == NULL); \ |
589 | CHECK_PID_LEGALITY(task_pid(pObj->RTUSBCmdThr_task)) \ | ||
588 | up(&(pAd->RTUSBCmd_semaphore)); \ | 590 | up(&(pAd->RTUSBCmd_semaphore)); \ |
589 | } | 591 | } |
590 | 592 | ||
diff --git a/drivers/staging/rt2870/rt_linux.h b/drivers/staging/rt2870/rt_linux.h index 49ad37f0063..5a6ee6ad0e5 100644 --- a/drivers/staging/rt2870/rt_linux.h +++ b/drivers/staging/rt2870/rt_linux.h | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <linux/module.h> | 44 | #include <linux/module.h> |
45 | #include <linux/version.h> | 45 | #include <linux/version.h> |
46 | #include <linux/kernel.h> | 46 | #include <linux/kernel.h> |
47 | #include <linux/kthread.h> | ||
47 | 48 | ||
48 | #include <linux/spinlock.h> | 49 | #include <linux/spinlock.h> |
49 | #include <linux/init.h> | 50 | #include <linux/init.h> |
@@ -165,14 +166,12 @@ typedef int (*HARD_START_XMIT_FUNC)(struct sk_buff *skb, struct net_device *net_ | |||
165 | 166 | ||
166 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) | 167 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) |
167 | typedef struct pid * THREAD_PID; | 168 | typedef struct pid * THREAD_PID; |
168 | #define THREAD_PID_INIT_VALUE NULL | ||
169 | #define GET_PID(_v) find_get_pid(_v) | 169 | #define GET_PID(_v) find_get_pid(_v) |
170 | #define GET_PID_NUMBER(_v) pid_nr(_v) | 170 | #define GET_PID_NUMBER(_v) pid_nr(_v) |
171 | #define CHECK_PID_LEGALITY(_pid) if (pid_nr(_pid) >= 0) | 171 | #define CHECK_PID_LEGALITY(_pid) if (pid_nr(_pid) >= 0) |
172 | #define KILL_THREAD_PID(_A, _B, _C) kill_pid(_A, _B, _C) | 172 | #define KILL_THREAD_PID(_A, _B, _C) kill_pid(_A, _B, _C) |
173 | #else | 173 | #else |
174 | typedef pid_t THREAD_PID; | 174 | typedef pid_t THREAD_PID; |
175 | #define THREAD_PID_INIT_VALUE -1 | ||
176 | #define GET_PID(_v) _v | 175 | #define GET_PID(_v) _v |
177 | #define GET_PID_NUMBER(_v) _v | 176 | #define GET_PID_NUMBER(_v) _v |
178 | #define CHECK_PID_LEGALITY(_pid) if (_pid >= 0) | 177 | #define CHECK_PID_LEGALITY(_pid) if (_pid >= 0) |
@@ -188,11 +187,11 @@ struct os_lock { | |||
188 | struct os_cookie { | 187 | struct os_cookie { |
189 | 188 | ||
190 | #ifdef RT2870 | 189 | #ifdef RT2870 |
191 | struct usb_device *pUsb_Dev; | 190 | struct usb_device *pUsb_Dev; |
192 | 191 | ||
193 | THREAD_PID MLMEThr_pid; | 192 | struct task_struct *MLMEThr_task; |
194 | THREAD_PID RTUSBCmdThr_pid; | 193 | struct task_struct *RTUSBCmdThr_task; |
195 | THREAD_PID TimerQThr_pid; | 194 | struct task_struct *TimerQThr_task; |
196 | #endif // RT2870 // | 195 | #endif // RT2870 // |
197 | 196 | ||
198 | struct tasklet_struct rx_done_task; | 197 | struct tasklet_struct rx_done_task; |