wifi: mac80211: correct RX stats packet increment for multi-link

Currently, RX stats packets are incremented for deflink member for
non-ML and multi-link(ML) station case. However, for ML station,
packets should be incremented based on the specific link.

Therefore, if a valid link_id is present, fetch the corresponding
link station information and increment the RX packets for that link.
For non-MLO stations, the deflink will still be used.

Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com>
Link: https://patch.msgid.link/20250528054420.3050133-10-quic_sarishar@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Sarika Sharma
2025-05-28 11:14:19 +05:30
committed by Johannes Berg
parent 505991fba9
commit 5e9129f574

View File

@@ -231,8 +231,19 @@ static void __ieee80211_queue_skb_to_iface(struct ieee80211_sub_if_data *sdata,
skb_queue_tail(&sdata->skb_queue, skb);
wiphy_work_queue(sdata->local->hw.wiphy, &sdata->work);
if (sta)
sta->deflink.rx_stats.packets++;
if (sta) {
struct link_sta_info *link_sta_info;
if (link_id >= 0) {
link_sta_info = rcu_dereference(sta->link[link_id]);
if (!link_sta_info)
return;
} else {
link_sta_info = &sta->deflink;
}
link_sta_info->rx_stats.packets++;
}
}
static void ieee80211_queue_skb_to_iface(struct ieee80211_sub_if_data *sdata,