diff options
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/305-mac80211-fix-tx-status-for-no-ack-cases.patch')
1 files changed, 0 insertions, 82 deletions
diff --git a/package/kernel/mac80211/patches/subsys/305-mac80211-fix-tx-status-for-no-ack-cases.patch b/package/kernel/mac80211/patches/subsys/305-mac80211-fix-tx-status-for-no-ack-cases.patch deleted file mode 100644 index 16108c83f3..0000000000 --- a/package/kernel/mac80211/patches/subsys/305-mac80211-fix-tx-status-for-no-ack-cases.patch +++ /dev/null @@ -1,82 +0,0 @@ -From: Markus Theil <markus.theil@tu-ilmenau.de> -Date: Wed, 18 Dec 2019 15:27:36 +0100 -Subject: [PATCH] mac80211: fix tx status for no ack cases - -Before this patch, frames which where successfully transmitted without -requiring acks where accounted as lost frames. - -Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de> -Link: https://lore.kernel.org/r/20191218142736.15843-1-markus.theil@tu-ilmenau.de -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - ---- a/net/mac80211/status.c -+++ b/net/mac80211/status.c -@@ -895,6 +895,7 @@ static void __ieee80211_tx_status(struct - int rates_idx; - bool send_to_cooked; - bool acked; -+ bool noack_success; - struct ieee80211_bar *bar; - int shift = 0; - int tid = IEEE80211_NUM_TIDS; -@@ -913,6 +914,8 @@ static void __ieee80211_tx_status(struct - clear_sta_flag(sta, WLAN_STA_SP); - - acked = !!(info->flags & IEEE80211_TX_STAT_ACK); -+ noack_success = !!(info->flags & -+ IEEE80211_TX_STAT_NOACK_TRANSMITTED); - - /* mesh Peer Service Period support */ - if (ieee80211_vif_is_mesh(&sta->sdata->vif) && -@@ -977,12 +980,12 @@ static void __ieee80211_tx_status(struct - ieee80211_handle_filtered_frame(local, sta, skb); - return; - } else { -- if (!acked) -+ if (!acked && !noack_success) - sta->status_stats.retry_failed++; - sta->status_stats.retry_count += retry_count; - - if (ieee80211_is_data_present(fc)) { -- if (!acked) -+ if (!acked && !noack_success) - sta->status_stats.msdu_failed[tid]++; - - sta->status_stats.msdu_retries[tid] += -@@ -1020,7 +1023,7 @@ static void __ieee80211_tx_status(struct - } - - if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) { -- if (info->flags & IEEE80211_TX_STAT_ACK) { -+ if (acked) { - if (sta->status_stats.lost_packets) - sta->status_stats.lost_packets = 0; - -@@ -1028,6 +1031,8 @@ static void __ieee80211_tx_status(struct - if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH)) - sta->status_stats.last_tdls_pkt_time = - jiffies; -+ } else if (noack_success) { -+ /* nothing to do here, do not account as lost */ - } else { - ieee80211_lost_packet(sta, info); - } -@@ -1148,7 +1153,7 @@ void ieee80211_tx_status_ext(struct ieee - - sta = container_of(pubsta, struct sta_info, sta); - -- if (!acked) -+ if (!acked && !noack_success) - sta->status_stats.retry_failed++; - sta->status_stats.retry_count += retry_count; - -@@ -1163,6 +1168,8 @@ void ieee80211_tx_status_ext(struct ieee - sta->status_stats.last_tdls_pkt_time = jiffies; - } else if (test_sta_flag(sta, WLAN_STA_PS_STA)) { - return; -+ } else if (noack_success) { -+ /* nothing to do here, do not account as lost */ - } else { - ieee80211_lost_packet(sta, info); - } |