コード例 #1
0
ファイル: rtw_sta_mgt.c プロジェクト: ChangYX/Linux3188
u32	_rtw_free_sta_priv(struct	sta_priv *pstapriv)
{
_func_enter_;
	if(pstapriv){
		rtw_mfree_sta_priv_lock(pstapriv);

		if(pstapriv->pallocated_stainfo_buf) {
			rtw_vmfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info)*NUM_STA+4);
		}
	}
	
_func_exit_;
	return _SUCCESS;
}
コード例 #2
0
u32	_rtw_free_sta_priv(struct	sta_priv *pstapriv)
{
    _func_enter_;
    if(pstapriv) {
        rtw_mfree_sta_priv_lock(pstapriv);

        if(pstapriv->pallocated_stainfo_buf) {
#ifdef MEM_ALLOC_REFINE
            rtw_vmfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info)*NUM_STA+4);
#else
            rtw_mfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info)*NUM_STA+4);
#endif
        }
    }

    _func_exit_;
    return _SUCCESS;
}
コード例 #3
0
ファイル: rtw_sta_mgt.c プロジェクト: zefie/nxt_andx86_kernel
u32	_rtw_free_sta_priv(struct	sta_priv *pstapriv)
{
	_irqL 	irqL;
	_list	*phead, *plist;
	struct sta_info *psta = NULL;
	struct recv_reorder_ctrl *preorder_ctrl;
	int 	index;

_func_enter_;
	if(pstapriv){

		/*	delete all reordering_ctrl_timer		*/
		_enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
		for(index = 0; index < NUM_STA; index++)
		{
			phead = &(pstapriv->sta_hash[index]);
			plist = get_next(phead);

			while ((rtw_end_of_queue_search(phead, plist)) == _FALSE)
			{
				int i;
				psta = LIST_CONTAINOR(plist, struct sta_info ,hash_list);
				plist = get_next(plist);

				for(i=0; i < 16 ; i++)
				{
					preorder_ctrl = &psta->recvreorder_ctrl[i];
					_cancel_timer_ex(&preorder_ctrl->reordering_ctrl_timer);
				}
			}
		}
		_exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
		/*===============================*/

		rtw_mfree_sta_priv_lock(pstapriv);

		if(pstapriv->pallocated_stainfo_buf) {
			rtw_vmfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info)*NUM_STA+4);
		}
	}

_func_exit_;
	return _SUCCESS;
}