diff options
author | Yeshwanth Sriram Guntuka <ysriramg@codeaurora.org> | 2021-02-01 13:37:00 +0530 |
---|---|---|
committer | chenpaul <chenpaul@google.com> | 2021-03-23 19:02:40 +0800 |
commit | d2c3bd30c1c2f347f94261c277d4c986df0ddc87 (patch) | |
tree | 25223abc6fccfe9b0972a99fb0a0123ec9804b76 | |
parent | 9bd853849275ecc934f1902bf694e77eed8fb23a (diff) | |
download | qcacld-d2c3bd30c1c2f347f94261c277d4c986df0ddc87.tar.gz |
qcacld-3.0: Add support to flush fragments for a particular peer
Add support for flushing fragments for a particular peer.
Change-Id: I91236d2edc73317380590458b974013a02e858a1
CRs-Fixed: 2860131
Bug: 182958222
-rw-r--r-- | core/dp/txrx/ol_txrx.c | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 5bb47c8588..8f211a999b 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2018, 2020-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -4129,6 +4129,34 @@ static void ol_txrx_peer_unmap_sync_cb_set( } /** + * 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_pdev *ppdev, uint8_t vdev_id, + uint8_t *peer_mac) +{ + struct ol_txrx_peer_t *peer; + struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev; + + 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 * @@ -6621,6 +6649,7 @@ static struct cdp_peer_ops ol_ops_peer = { .update_last_real_peer = ol_txrx_update_last_real_peer, #endif /* CONFIG_HL_SUPPORT */ .peer_detach_force_delete = ol_txrx_peer_detach_force_delete, + .peer_flush_frags = ol_txrx_peer_flush_frags, }; static struct cdp_tx_delay_ops ol_ops_delay = { |