qcacld-3.0: Add support to flush fragments for a particular peer

Add support for flushing fragments for a particular peer.

Change-Id: I2f66036ebb30bcd16c6a88d7d0729d084ebf75a1
CVE-Fixed: CVE-2020-24587
Mot-CRs-fixed: (CR)
CRs-Fixed: 2860131
Reviewed-on: https://gerrit.mot.com/1929641
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Bin Liu <liubin7@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
Yeshwanth Sriram Guntuka 2021-02-01 13:37:00 +05:30 • committed by panyq6
commit ee511154a8

View file

@ -3701,6 +3701,36 @@ ol_txrx_peer_flush_frags(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_INTERNAL);
}
/**
* ol_txrx_peer_flush_frags() - Flush fragments for a particular peer
* @soc_hdl - datapath soc handle
* @vdev_id - virtual device id
* @peer_mac - peer mac address
*
* Return: None
*/
static void
ol_txrx_peer_flush_frags(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
uint8_t *peer_mac)
{
struct ol_txrx_peer_t *peer;
struct ol_txrx_soc_t *soc = cdp_soc_t_to_ol_txrx_soc_t(soc_hdl);
struct ol_txrx_pdev_t *pdev =
ol_txrx_get_pdev_from_pdev_id(soc, OL_TXRX_PDEV_ID);
if (!pdev)
return;
peer = ol_txrx_peer_find_hash_find_get_ref(pdev, peer_mac, 0, 1,
PEER_DEBUG_ID_OL_INTERNAL);
if (!peer)
return;
ol_rx_reorder_peer_cleanup(peer->vdev, peer);
ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_INTERNAL);
}
/**
* ol_txrx_dump_tx_desc() - dump tx desc total and free count
* @txrx_pdev: Pointer to txrx pdev