diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/rx.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 76478362a538..006cf89df70b 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2441,9 +2441,21 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
2441 | goto drop; | 2441 | goto drop; |
2442 | 2442 | ||
2443 | if (status->flag & RX_FLAG_HT) { | 2443 | if (status->flag & RX_FLAG_HT) { |
2444 | /* rate_idx is MCS index */ | 2444 | /* |
2445 | if (WARN_ON(status->rate_idx < 0 || | 2445 | * rate_idx is MCS index, which can be [0-76] as documented on: |
2446 | status->rate_idx >= 76)) | 2446 | * |
2447 | * http://wireless.kernel.org/en/developers/Documentation/ieee80211/802.11n | ||
2448 | * | ||
2449 | * Anything else would be some sort of driver or hardware error. | ||
2450 | * The driver should catch hardware errors. | ||
2451 | */ | ||
2452 | if (WARN((status->rate_idx < 0 || | ||
2453 | status->rate_idx > 76), | ||
2454 | "Rate marked as an HT rate but passed " | ||
2455 | "status->rate_idx is not " | ||
2456 | "an MCS index [0-76]: %d (0x%02x)\n", | ||
2457 | status->rate_idx, | ||
2458 | status->rate_idx)) | ||
2447 | goto drop; | 2459 | goto drop; |
2448 | /* HT rates are not in the table - use the highest legacy rate | 2460 | /* HT rates are not in the table - use the highest legacy rate |
2449 | * for now since other parts of mac80211 may not yet be fully | 2461 | * for now since other parts of mac80211 may not yet be fully |