//for device_set_media_duplex
 #define     DEVICE_LINK_CHANGE           0x00000001UL
 
-//PLICE_DEBUG->
-
-typedef        struct _RxManagementQueue {
-       int     packet_num;
-       int     head, tail;
-       PSRxMgmtPacket  Q[NUM];
-} RxManagementQueue, *PSRxManagementQueue;
-
-//PLICE_DEBUG<-
-
 typedef struct __device_opt {
        int         nRxDescs0;    //Number of RX descriptors0
        int         nRxDescs1;    //Number of RX descriptors1
        unsigned char byRxMode;
 
        spinlock_t                  lock;
-//PLICE_DEBUG->
-       RxManagementQueue       rxManeQueue;
-//PLICE_DEBUG<-
+
 //PLICE_DEBUG ->
        pid_t                   MLMEThr_pid;
        struct completion       notify;
        bool bCommit;
 } DEVICE_INFO, *PSDevice;
 
-//PLICE_DEBUG->
-
-inline  static void   EnQueue(PSDevice pDevice, PSRxMgmtPacket  pRxMgmtPacket)
-{
-       if ((pDevice->rxManeQueue.tail+1) % NUM == pDevice->rxManeQueue.head) {
-               return;
-       } else {
-               pDevice->rxManeQueue.tail = (pDevice->rxManeQueue.tail + 1) % NUM;
-               pDevice->rxManeQueue.Q[pDevice->rxManeQueue.tail] = pRxMgmtPacket;
-               pDevice->rxManeQueue.packet_num++;
-       }
-}
-
-static inline PSRxMgmtPacket DeQueue(PSDevice pDevice)
-{
-       PSRxMgmtPacket  pRxMgmtPacket;
-
-       if (pDevice->rxManeQueue.tail == pDevice->rxManeQueue.head) {
-               printk("Queue is Empty\n");
-               return NULL;
-       } else {
-               int     x;
-               //x=pDevice->rxManeQueue.head = (pDevice->rxManeQueue.head+1)%NUM;
-               pDevice->rxManeQueue.head = (pDevice->rxManeQueue.head+1)%NUM;
-               x = pDevice->rxManeQueue.head;
-               pRxMgmtPacket = pDevice->rxManeQueue.Q[x];
-               pDevice->rxManeQueue.packet_num--;
-               return pRxMgmtPacket;
-       }
-}
-
-void   InitRxManagementQueue(PSDevice   pDevice);
-
-//PLICE_DEBUG<-
-
 static inline bool device_get_ip(PSDevice pInfo) {
        struct in_device *in_dev = (struct in_device *)pInfo->dev->ip_ptr;
        struct in_ifaddr *ifa;
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("VIA Networking Solomon-A/B/G Wireless LAN Adapter Driver");
 
-#ifdef THREAD
-static int mlme_kill;
-#endif
-
 #define DEVICE_PARAM(N, D)
 
 #define RX_DESC_MIN0     16
        pTDInfo->byFlags = 0;
 }
 
-//PLICE_DEBUG ->
-void   InitRxManagementQueue(PSDevice  pDevice)
-{
-       pDevice->rxManeQueue.packet_num = 0;
-       pDevice->rxManeQueue.head = pDevice->rxManeQueue.tail = 0;
-}
-//PLICE_DEBUG<-
-
-//PLICE_DEBUG ->
-#ifdef THREAD
-static int MlmeThread(
-       void *Context)
-{
-       PSDevice        pDevice =  (PSDevice) Context;
-       PSRxMgmtPacket                  pRxMgmtPacket;
-
-       while (1) {
-               spin_lock_irq(&pDevice->lock);
-               while (pDevice->rxManeQueue.packet_num != 0) {
-                       pRxMgmtPacket = DeQueue(pDevice);
-                       vMgrRxManagePacket(pDevice, pDevice->pMgmt, pRxMgmtPacket);
-               }
-               spin_unlock_irq(&pDevice->lock);
-               if (mlme_kill == 0)
-                       break;
-
-               schedule();
-               if (mlme_kill == 0)
-                       break;
-       }
-
-       return 0;
-}
-#endif
-
 static int  device_open(struct net_device *dev)
 {
        PSDevice pDevice = (PSDevice)netdev_priv(dev);
        vMgrObjectInit(pDevice);
        vMgrTimerInit(pDevice);
 
-//PLICE_DEBUG->
-#ifdef THREAD
-       InitRxManagementQueue(pDevice);
-       mlme_kill = 0;
-       mlme_task = kthread_run(MlmeThread, (void *)pDevice, "MLME");
-       if (IS_ERR(mlme_task)) {
-               pr_err("thread create fail\n");
-               return -1;
-       }
-
-       mlme_kill = 1;
-#endif
-
        DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "call device_init_registers\n");
        device_init_registers(pDevice, DEVICE_INIT_COLD);
        MACvReadEtherAddress(pDevice->PortOffset, pDevice->abyCurrentNetAddr);
        PSDevice  pDevice = (PSDevice)netdev_priv(dev);
        PSMgmtObject     pMgmt = pDevice->pMgmt;
        //PLICE_DEBUG->
-#ifdef THREAD
-       mlme_kill = 0;
-#endif
 //PLICE_DEBUG<-
 //2007-1121-02<Add>by EinsnLiu
        if (pDevice->bLinkPass) {
 
                        }
                        pRxPacket->byRxRate = s_byGetRateIdx(*pbyRxRate);
                        pRxPacket->byRxChannel = (*pbyRxSts) >> 2;
-//PLICE_DEBUG->
 
-#ifdef THREAD
-                       EnQueue(pDevice, pRxPacket);
-#else
                        vMgrRxManagePacket((void *)pDevice, pDevice->pMgmt, pRxPacket);
-#endif
-//PLICE_DEBUG<-
+
                        // hostap Deamon handle 802.11 management
                        if (pDevice->bEnableHostapd) {
                                skb->dev = pDevice->apdev;