nwi->os_context.os_private = (void *)nic;
        nwi->os_context.tx_buffer_size = LINUX_TX_SIZE;
        nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs;
-
-       nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs;
-
 #if defined(MEMORY_STATIC)
        nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
 #endif
 
         **/
        void *txq_lock;
 
-       struct semaphore *txq_add_to_head_lock;
        unsigned long txq_spinlock_flags;
 
        struct txq_entry_t *txq_head;
 {
        wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
        unsigned long flags;
-       if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT))
+       if (p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs,
+                              CFG_PKTS_TIMEOUT))
                return -1;
 
        spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
        PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
 
        spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
-       up(p->txq_add_to_head_lock);
+       up(&g_linux_wlan->txq_add_to_head_cs);
 
 
        /**
                if (p->quit)
                        break;
 
-               p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT);
+               p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs,
+                                  CFG_PKTS_TIMEOUT);
 #ifdef TCP_ACK_FILTER
                wilc_wlan_txq_filter_dup_tcp_ack();
 #endif
                if (ret != 1)
                        break;
        } while (0);
-       up(p->txq_add_to_head_lock);
+       up(&g_linux_wlan->txq_add_to_head_cs);
 
        p->txq_exit = 1;
        PRINT_D(TX_DBG, "THREAD: Exiting txq\n");
        g_wlan.hif_lock = inp->os_context.hif_critical_section;
        g_wlan.txq_lock = inp->os_context.txq_critical_section;
 
-       g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
-
        g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
 #if defined (MEMORY_STATIC)
        g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size;