spin_lock_init(&pxmitpriv->lock);
        spin_lock_init(&pxmitpriv->lock_sctx);
-       sema_init(&pxmitpriv->xmit_sema, 0);
-       sema_init(&pxmitpriv->terminate_xmitthread_sema, 0);
 
        pxmitpriv->adapter = padapter;
 
        for (i = 0; i < 4; i ++)
                pxmitpriv->wmm_para_seq[i] = i;
 
-       sema_init(&pxmitpriv->tx_retevt, 0);
-
        pxmitpriv->ack_tx = false;
        mutex_init(&pxmitpriv->ack_tx_mutex);
        rtw_sctx_init23a(&pxmitpriv->ack_tx_ops, 0);
 
 #include <asm/byteorder.h>
 #include <linux/atomic.h>
 #include <linux/io.h>
-#include <linux/semaphore.h>
 #include <linux/sem.h>
 #include <linux/sched.h>
 #include <linux/etherdevice.h>
 
 #include <osdep_intf.h>
 
 #include <asm/byteorder.h>
-#include <linux/semaphore.h>
 #include <linux/list.h>
 /* include <linux/smp_lock.h> */
 #include <linux/spinlock.h>
        u32     command;
        u32     status;
        u8      *pbuf;
-       struct semaphore        sema;
 
        void (*_async_io_callback)(struct rtw_adapter *padater, struct io_req *pio_req, u8 *cnxt);
        u8 *cnxt;
 
 struct xmit_priv {
        spinlock_t      lock;
 
-       struct semaphore        xmit_sema;
-       struct semaphore        terminate_xmitthread_sema;
-
        struct rtw_queue        be_pending;
        struct rtw_queue        bk_pending;
        struct rtw_queue        vi_pending;
                                 * 2->be, 3->bk.
                                 */
 
-       struct semaphore        tx_retevt;/* all tx return event; */
-
        struct tasklet_struct xmit_tasklet;
 
        struct rtw_queue free_xmitbuf_queue;