if (pDevice->bCmdRunning != true)
                return;
 
-       spin_lock_irq(&pDevice->lock);
-
        switch (pDevice->eCommandState) {
 
        case WLAN_CMD_SCAN_START:
                        if ((pMgmt->b11hEnable == false) ||
                            (pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) {
                                s_vProbeChannel(pDevice);
-                               spin_unlock_irq(&pDevice->lock);
                                vCommandTimerWait((void *) pDevice, 100);
                                return;
                        } else {
-                               spin_unlock_irq(&pDevice->lock);
                                vCommandTimerWait((void *) pDevice, WCMD_PASSIVE_SCAN_TIME);
                                return;
                        }
                                pDevice->byLinkWaitCount = 0;
                                pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT;
                                vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT);
-                               spin_unlock_irq(&pDevice->lock);
                                DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n");
                                return;
                        }
                                pDevice->byLinkWaitCount = 0;
                                pDevice->eCommandState = WLAN_ASSOCIATE_WAIT;
                                vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT);
-                               spin_unlock_irq(&pDevice->lock);
                                return;
                        }
                } else if (pMgmt->eCurrState < WMAC_STATE_AUTHPENDING) {
                        //mike add:wait another 2 sec if authenticated_frame delay!
                        pDevice->byLinkWaitCount++;
                        printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n", pDevice->byLinkWaitCount);
-                       spin_unlock_irq(&pDevice->lock);
                        vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT/2);
                        return;
                }
                        //mike add:wait another 2 sec if associated_frame delay!
                        pDevice->byLinkWaitCount++;
                        printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n", pDevice->byLinkWaitCount);
-                       spin_unlock_irq(&pDevice->lock);
                        vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT/2);
                        return;
                }
 
                                pDevice->byKeyIndex = 0;
                                pDevice->bTransmitKey = false;
-                               spin_unlock_irq(&pDevice->lock);
+
                                KeyvInitTable(pDevice, &pDevice->sKey);
-                               spin_lock_irq(&pDevice->lock);
+
                                pMgmt->byCSSPK = KEY_CTL_NONE;
                                pMgmt->byCSSGK = KEY_CTL_NONE;
 
 
        s_bCommandComplete(pDevice);
 
-       spin_unlock_irq(&pDevice->lock);
        return;
 }