software/drivers/sd8887/src/wlan/mlan/mlan_11n_rxreorder.c
/**
 *  @brief This function delete rxreorder table's entry
 *          and free the memory
 *
 *  @param priv             A pointer to mlan_private
 *  @param rx_reor_tbl_ptr  A pointer to structure RxReorderTbl
 *
 *  @return                 N/A
 */
@brief This function delete rxreorder table's entry
and free the memory

@param priv             A pointer to mlan_private
@param rx_reor_tbl_ptr  A pointer to structure RxReorderTbl

@return                 N/A
@brief This function delete rxreorder table ' s entry and free the memory @param priv A pointer to mlan_private @param rx_reor_tbl_ptr A pointer to structure RxReorderTbl @return N / A
static t_void
wlan_11n_delete_rxreorder_tbl_entry(mlan_private *priv,
				    RxReorderTbl *rx_reor_tbl_ptr)
{
	pmlan_adapter pmadapter = priv->adapter;
	ENTER();
	if (!rx_reor_tbl_ptr) {
		LEAVE();
		return;
	}
	mlan_block_rx_process(pmadapter, MTRUE);
	wlan_11n_dispatch_pkt_until_start_win(priv, rx_reor_tbl_ptr,
					      (rx_reor_tbl_ptr->start_win +
					       rx_reor_tbl_ptr->win_size)
					      & (MAX_TID_VALUE - 1));
	if (rx_reor_tbl_ptr->timer_context.timer) {
		if (rx_reor_tbl_ptr->timer_context.timer_is_set) {
			priv->adapter->callbacks.moal_stop_timer(pmadapter->
								 pmoal_handle,
								 rx_reor_tbl_ptr->timer_context.
								 timer);
			rx_reor_tbl_ptr->timer_context.timer_is_set = MFALSE;
		}
		priv->adapter->callbacks.moal_free_timer(pmadapter->
							 pmoal_handle,
							 rx_reor_tbl_ptr->timer_context.
							 timer);
		rx_reor_tbl_ptr->timer_context.timer = MNULL;
	}
	PRINTM(MDAT_D, "Delete rx_reor_tbl_ptr: %p\n", rx_reor_tbl_ptr);
	util_unlink_list(pmadapter->pmoal_handle,
			 &priv->rx_reorder_tbl_ptr,
			 (pmlan_linked_list)rx_reor_tbl_ptr,
			 pmadapter->callbacks.moal_spin_lock,
			 pmadapter->callbacks.moal_spin_unlock);
	pmadapter->callbacks.moal_mfree(pmadapter->pmoal_handle,
					(t_u8 *)rx_reor_tbl_ptr->
					rx_reorder_ptr);
	pmadapter->callbacks.moal_mfree(pmadapter->pmoal_handle,
					(t_u8 *)rx_reor_tbl_ptr);
	mlan_block_rx_process(pmadapter, MFALSE);
	LEAVE();
}
static t_void wlan_11n_delete_rxreorder_tbl_entry ( mlan_private * priv , RxReorderTbl * rx_reor_tbl_ptr ) { pmlan_adapter pmadapter = priv -> adapter ; ENTER ( ) ; if ( ! rx_reor_tbl_ptr ) { LEAVE ( ) ; return ; } mlan_block_rx_process ( pmadapter , MTRUE ) ; wlan_11n_dispatch_pkt_until_start_win ( priv , rx_reor_tbl_ptr , ( rx_reor_tbl_ptr -> start_win + rx_reor_tbl_ptr -> win_size ) & ( MAX_TID_VALUE - 1 ) ) ; if ( rx_reor_tbl_ptr -> timer_context . timer ) { if ( rx_reor_tbl_ptr -> timer_context . timer_is_set ) { priv -> adapter -> callbacks . moal_stop_timer ( pmadapter -> pmoal_handle , rx_reor_tbl_ptr -> timer_context . timer ) ; rx_reor_tbl_ptr -> timer_context . timer_is_set = MFALSE ; } priv -> adapter -> callbacks . moal_free_timer ( pmadapter -> pmoal_handle , rx_reor_tbl_ptr -> timer_context . timer ) ; rx_reor_tbl_ptr -> timer_context . timer = MNULL ; } PRINTM ( MDAT_D , " \n " , rx_reor_tbl_ptr ) ; util_unlink_list ( pmadapter -> pmoal_handle , & priv -> rx_reorder_tbl_ptr , ( pmlan_linked_list ) rx_reor_tbl_ptr , pmadapter -> callbacks . moal_spin_lock , pmadapter -> callbacks . moal_spin_unlock ) ; pmadapter -> callbacks . moal_mfree ( pmadapter -> pmoal_handle , ( t_u8 * ) rx_reor_tbl_ptr -> rx_reorder_ptr ) ; pmadapter -> callbacks . moal_mfree ( pmadapter -> pmoal_handle , ( t_u8 * ) rx_reor_tbl_ptr ) ; mlan_block_rx_process ( pmadapter , MFALSE ) ; LEAVE ( ) ; }
@brief This function delete rxreorder table's entry
          and free the memory
@brief This function delete rxreorder table ' s entry and free the memory