diff options
author | Johannes Berg <johannes.berg@intel.com> | 2017-05-04 07:52:10 +0200 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | adcac43b7811a5466f1f411ff21003b6178d8007 (patch) | |
tree | b5bba97b2bcaa9b482718ef69b8620ad17b9c5c2 /net/wireless | |
parent | eca4874022c5c3dcec7c0bb1c9034b30b33a15f2 (diff) |
cfg80211: improve warnings in VHT rate calculation
Linus reported hitting the bandwidth warning, but it is indeed
pretty useless - improve it by printing the rate configuration
and make it only warn once, for both warnings here.
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/util.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index f0c6c4bf53f3..e04919d67429 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -1200,8 +1200,8 @@ static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate) u32 bitrate; int idx; - if (WARN_ON_ONCE(rate->mcs > 9)) - return 0; + if (rate->mcs > 9) + goto warn; switch (rate->bw) { case RATE_INFO_BW_160: @@ -1216,8 +1216,7 @@ static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate) case RATE_INFO_BW_5: case RATE_INFO_BW_10: default: - WARN_ON(1); - /* fall through */ + goto warn; case RATE_INFO_BW_20: idx = 0; } @@ -1230,6 +1229,10 @@ static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate) /* do NOT round down here */ return (bitrate + 50000) / 100000; + warn: + WARN_ONCE(1, "invalid rate bw=%d, mcs=%d, nss=%d\n", + rate->bw, rate->mcs, rate->nss); + return 0; } u32 cfg80211_calculate_bitrate(struct rate_info *rate) |