diff options
Diffstat (limited to 'package/kernel/mac80211/patches/349-mac80211-fix-legacy-invalid-rxrate.patch')
-rw-r--r-- | package/kernel/mac80211/patches/349-mac80211-fix-legacy-invalid-rxrate.patch | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/package/kernel/mac80211/patches/349-mac80211-fix-legacy-invalid-rxrate.patch b/package/kernel/mac80211/patches/349-mac80211-fix-legacy-invalid-rxrate.patch deleted file mode 100644 index c160515892..0000000000 --- a/package/kernel/mac80211/patches/349-mac80211-fix-legacy-invalid-rxrate.patch +++ /dev/null @@ -1,60 +0,0 @@ -From a17d93ff3a950fefaea40e4a4bf3669b9137c533 Mon Sep 17 00:00:00 2001 -From: Ben Greear <greearb@candelatech.com> -Date: Wed, 14 Dec 2016 11:30:38 -0800 -Subject: [PATCH] mac80211: fix legacy and invalid rx-rate report - -This fixes obtaining the rate info via sta_set_sinfo -when the rx rate is invalid (for instance, on IBSS -interface that has received no frames from one of its -peers). - -Also initialize rinfo->flags for legacy rates, to not -rely on the whole sinfo being initialized to zero. - -Signed-off-by: Ben Greear <greearb@candelatech.com> -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - net/mac80211/sta_info.c | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - ---- a/net/mac80211/sta_info.c -+++ b/net/mac80211/sta_info.c -@@ -1975,6 +1975,7 @@ static void sta_stats_decode_rate(struct - u16 brate; - unsigned int shift; - -+ rinfo->flags = 0; - sband = local->hw.wiphy->bands[(rate >> 4) & 0xf]; - brate = sband->bitrates[rate & 0xf].bitrate; - if (rinfo->bw == RATE_INFO_BW_5) -@@ -1990,14 +1991,15 @@ static void sta_stats_decode_rate(struct - rinfo->flags |= RATE_INFO_FLAGS_SHORT_GI; - } - --static void sta_set_rate_info_rx(struct sta_info *sta, struct rate_info *rinfo) -+static int sta_set_rate_info_rx(struct sta_info *sta, struct rate_info *rinfo) - { - u16 rate = ACCESS_ONCE(sta_get_last_rx_stats(sta)->last_rate); - - if (rate == STA_STATS_RATE_INVALID) -- rinfo->flags = 0; -- else -- sta_stats_decode_rate(sta->local, rate, rinfo); -+ return -EINVAL; -+ -+ sta_stats_decode_rate(sta->local, rate, rinfo); -+ return 0; - } - - static void sta_set_tidstats(struct sta_info *sta, -@@ -2202,8 +2204,8 @@ void sta_set_sinfo(struct sta_info *sta, - } - - if (!(sinfo->filled & BIT(NL80211_STA_INFO_RX_BITRATE))) { -- sta_set_rate_info_rx(sta, &sinfo->rxrate); -- sinfo->filled |= BIT(NL80211_STA_INFO_RX_BITRATE); -+ if (sta_set_rate_info_rx(sta, &sinfo->rxrate) == 0) -+ sinfo->filled |= BIT(NL80211_STA_INFO_RX_BITRATE); - } - - sinfo->filled |= BIT(NL80211_STA_INFO_TID_STATS); |