1

ath.git patches for v6.12-rc4

Fix two instances of memory leaks, one in ath10k and one in ath11k.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYKADIWIQQ/mtSHzPUi16IfDEksFbugiYzLewUCZw/llxQcampvaG5zb25A
 a2VybmVsLm9yZwAKCRAsFbugiYzLe+19AP4u/ME2TCahxmu2KxqmRmBwsLmIaYJk
 msdN+ZdyV2oORgD+LKYyuIIQ+2iSLobvminy7HZPddYcenbh7QKBffHnkgE=
 =LOOy
 -----END PGP SIGNATURE-----

Merge tag 'ath-current-20241016' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath

ath.git patches for v6.12-rc4

Fix two instances of memory leaks, one in ath10k and one in ath11k.
This commit is contained in:
Kalle Valo 2024-10-17 17:25:37 +03:00
commit a940b3a1ad
3 changed files with 13 additions and 3 deletions

View File

@ -3043,9 +3043,14 @@ ath10k_wmi_tlv_op_cleanup_mgmt_tx_send(struct ath10k *ar,
struct sk_buff *msdu)
{
struct ath10k_skb_cb *cb = ATH10K_SKB_CB(msdu);
struct ath10k_mgmt_tx_pkt_addr *pkt_addr;
struct ath10k_wmi *wmi = &ar->wmi;
idr_remove(&wmi->mgmt_pending_tx, cb->msdu_id);
spin_lock_bh(&ar->data_lock);
pkt_addr = idr_remove(&wmi->mgmt_pending_tx, cb->msdu_id);
spin_unlock_bh(&ar->data_lock);
kfree(pkt_addr);
return 0;
}

View File

@ -2441,6 +2441,7 @@ wmi_process_mgmt_tx_comp(struct ath10k *ar, struct mgmt_tx_compl_params *param)
dma_unmap_single(ar->dev, pkt_addr->paddr,
msdu->len, DMA_TO_DEVICE);
info = IEEE80211_SKB_CB(msdu);
kfree(pkt_addr);
if (param->status) {
info->flags &= ~IEEE80211_TX_STAT_ACK;
@ -9612,6 +9613,7 @@ static int ath10k_wmi_mgmt_tx_clean_up_pending(int msdu_id, void *ptr,
dma_unmap_single(ar->dev, pkt_addr->paddr,
msdu->len, DMA_TO_DEVICE);
ieee80211_free_txskb(ar->hw, msdu);
kfree(pkt_addr);
return 0;
}

View File

@ -5291,9 +5291,12 @@ int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
hal_status == HAL_TLV_STATUS_PPDU_DONE) {
rx_mon_stats->status_ppdu_done++;
pmon->mon_ppdu_status = DP_PPDU_STATUS_DONE;
ath11k_dp_rx_mon_dest_process(ar, mac_id, budget, napi);
if (!ab->hw_params.full_monitor_mode) {
ath11k_dp_rx_mon_dest_process(ar, mac_id,
budget, napi);
pmon->mon_ppdu_status = DP_PPDU_STATUS_START;
}
}
if (ppdu_info->peer_id == HAL_INVALID_PEERID ||
hal_status != HAL_RX_MON_STATUS_PPDU_DONE) {