void mfree_recv_priv_lock(struct recv_priv *precvpriv) { _spinlock_free(&precvpriv->lock); _free_sema(&precvpriv->recv_sema); _free_sema(&precvpriv->terminate_recvthread_sema); _spinlock_free(&precvpriv->free_recv_queue.lock); _spinlock_free(&precvpriv->recv_pending_queue.lock); }
void mfree_sta_priv_lock(struct sta_priv *pstapriv) { mfree_all_stainfo(pstapriv); //be done before free sta_hash_lock _spinlock_free(&pstapriv->free_sta_queue.lock); _spinlock_free(&pstapriv->sta_hash_lock); _spinlock_free(&pstapriv->wakeup_q.lock); _spinlock_free(&pstapriv->sleep_q.lock); }
void _free_sta_recv_priv_lock(struct sta_recv_priv *psta_recvpriv) { _func_enter_; _spinlock_free(&psta_recvpriv->lock); _spinlock_free(&(psta_recvpriv->defrag_q.lock)); _func_exit_; }
void _free_sta_xmit_priv_lock(struct sta_xmit_priv *psta_xmitpriv) { _func_enter_; _spinlock_free(&psta_xmitpriv->lock); _spinlock_free(&(psta_xmitpriv->be_q.sta_pending.lock)); _spinlock_free(&(psta_xmitpriv->bk_q.sta_pending.lock)); _spinlock_free(&(psta_xmitpriv->vi_q.sta_pending.lock)); _spinlock_free(&(psta_xmitpriv->vo_q.sta_pending.lock)); _func_exit_; }
static void mfree_stainfo(struct sta_info *psta) { _func_enter_; if(&psta->lock != NULL) _spinlock_free(&psta->lock); _free_sta_xmit_priv_lock(&psta->sta_xmitpriv); _free_sta_recv_priv_lock(&psta->sta_recvpriv); _func_exit_; }
void _free_cmd_priv (struct cmd_priv *pcmdpriv) { _func_enter_; if(pcmdpriv){ _spinlock_free(&(pcmdpriv->cmd_queue.lock)); _free_sema(&(pcmdpriv->cmd_queue_sema)); //_free_sema(&(pcmdpriv->cmd_done_sema)); _free_sema(&(pcmdpriv->terminate_cmdthread_sema)); if (pcmdpriv->cmd_allocated_buf) _mfree(pcmdpriv->cmd_allocated_buf, MAX_CMDSZ + CMDBUFF_ALIGN_SZ); if (pcmdpriv->rsp_allocated_buf) _mfree(pcmdpriv->rsp_allocated_buf, MAX_RSPSZ + 4); } _func_exit_; }