qcacmn: Register API to flush frags in dp peer ops

Register dp_peer_flush_frags API in dp peer ops
for flushing fragments for a particular peer.

Change-Id: Ia179d3160bdc306ec965c465134042c66a0c40a6
CRs-Fixed: 2874366
这个提交包含在:
Yeshwanth Sriram Guntuka
2021-02-05 13:52:26 +05:30
提交者 Madan Koyyalamudi
父节点 817481b5e3
当前提交 df22eee823
修改 3 个文件,包含 40 行新增0 行删除

查看文件

@@ -4649,3 +4649,30 @@ failed:
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_GENERIC_STATS);
}
#endif /* DUMP_REO_QUEUE_INFO_IN_DDR */
void dp_peer_flush_frags(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
uint8_t *peer_mac)
{
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
struct dp_peer *peer = dp_peer_find_hash_find(soc, peer_mac, 0,
vdev_id, DP_MOD_ID_CDP);
struct dp_rx_tid *rx_tid;
uint8_t tid;
if (!peer)
return;
dp_info("Flushing fragments for peer " QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(peer->mac_addr.raw));
for (tid = 0; tid < DP_MAX_TIDS; tid++) {
rx_tid = &peer->rx_tid[tid];
qdf_spin_lock_bh(&rx_tid->tid_lock);
dp_rx_defrag_waitlist_remove(peer, tid);
dp_rx_reorder_flush_frag(peer, tid);
qdf_spin_unlock_bh(&rx_tid->tid_lock);
}
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
}