mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
wifi: ath12k: Add helper to free DP link peer
Introduce ath12k_dp_link_peer_free() to wrap cleanup steps required before freeing a DP link peer. This avoids code duplication and ensures consistent teardown across multiple call flows. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Signed-off-by: Pavankumar Nandeshwar <quic_pnandesh@quicinc.com> Signed-off-by: Ripan Deuri <quic_rdeuri@quicinc.com> Reviewed-by: Karthikeyan Periyasamy <karthikeyan.periyasamy@oss.qualcomm.com> Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com> Link: https://patch.msgid.link/20251103112111.2260639-5-quic_rdeuri@quicinc.com Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
This commit is contained in:
parent
35fcf4fa19
commit
05774dffb9
|
|
@ -9,6 +9,14 @@
|
|||
#include "debug.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
void ath12k_dp_link_peer_free(struct ath12k_dp_link_peer *peer)
|
||||
{
|
||||
list_del(&peer->list);
|
||||
|
||||
kfree(peer->peer_stats.rx_stats);
|
||||
kfree(peer);
|
||||
}
|
||||
|
||||
struct ath12k_dp_link_peer *
|
||||
ath12k_dp_link_peer_find_by_vdev_and_addr(struct ath12k_dp *dp,
|
||||
int vdev_id, const u8 *addr)
|
||||
|
|
@ -140,10 +148,7 @@ void ath12k_dp_link_peer_unmap_event(struct ath12k_base *ab, u16 peer_id)
|
|||
ath12k_dbg(ab, ATH12K_DBG_DP_HTT, "htt peer unmap vdev %d peer %pM id %d\n",
|
||||
peer->vdev_id, peer->addr, peer_id);
|
||||
|
||||
list_del(&peer->list);
|
||||
|
||||
kfree(peer->peer_stats.rx_stats);
|
||||
kfree(peer);
|
||||
ath12k_dp_link_peer_free(peer);
|
||||
wake_up(&ab->peer_mapping_wq);
|
||||
|
||||
exit:
|
||||
|
|
|
|||
|
|
@ -178,4 +178,5 @@ struct ath12k_dp_peer *ath12k_dp_peer_find_by_peerid(struct ath12k_pdev_dp *dp_p
|
|||
u16 peer_id);
|
||||
struct ath12k_dp_link_peer *
|
||||
ath12k_dp_link_peer_find_by_peerid(struct ath12k_pdev_dp *dp_pdev, u16 peer_id);
|
||||
void ath12k_dp_link_peer_free(struct ath12k_dp_link_peer *peer);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1213,10 +1213,7 @@ void ath12k_mac_peer_cleanup_all(struct ath12k *ar)
|
|||
synchronize_rcu();
|
||||
|
||||
list_for_each_entry_safe(peer, tmp, &peers, list) {
|
||||
list_del(&peer->list);
|
||||
|
||||
kfree(peer->peer_stats.rx_stats);
|
||||
kfree(peer);
|
||||
ath12k_dp_link_peer_free(peer);
|
||||
}
|
||||
|
||||
ar->num_peers = 0;
|
||||
|
|
@ -6377,10 +6374,8 @@ static void ath12k_mac_station_post_remove(struct ath12k *ar,
|
|||
ath12k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n",
|
||||
vif->addr, arvif->vdev_id);
|
||||
peer->sta = NULL;
|
||||
list_del(&peer->list);
|
||||
|
||||
kfree(peer->peer_stats.rx_stats);
|
||||
kfree(peer);
|
||||
ath12k_dp_link_peer_free(peer);
|
||||
ar->num_peers--;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,10 +50,7 @@ void ath12k_peer_cleanup(struct ath12k *ar, u32 vdev_id)
|
|||
ath12k_warn(ab, "removing stale peer %pM from vdev_id %d\n",
|
||||
peer->addr, vdev_id);
|
||||
|
||||
list_del(&peer->list);
|
||||
|
||||
kfree(peer->peer_stats.rx_stats);
|
||||
kfree(peer);
|
||||
ath12k_dp_link_peer_free(peer);
|
||||
ar->num_peers--;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user