mac80211: Update to version 5.7-rc3-1
[openwrt/staging/wigyori.git] / package / kernel / mac80211 / patches / subsys / 305-mac80211-fix-tx-status-for-no-ack-cases.patch
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 (file)
index 16108c8..0000000
+++ /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);
-               }