diff options
| author | Ingo Molnar <mingo@kernel.org> | 2016-11-22 12:37:38 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2016-11-22 12:37:38 +0100 |
| commit | 02cb689b2c102178c83e763e4f34b3efe7f969e2 (patch) | |
| tree | cba7eb3f16487cef5dc4a2690686b1e2eb42af0c /net/mac80211/vht.c | |
| parent | 194a6b5b9cb6b91a5f7d86984165a3bc55188599 (diff) | |
| parent | 3b404a519815b9820f73f1ecf404e5546c9270ba (diff) | |
| download | linux-02cb689b2c102178c83e763e4f34b3efe7f969e2.tar.bz2 | |
Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/mac80211/vht.c')
| -rw-r--r-- | net/mac80211/vht.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/net/mac80211/vht.c b/net/mac80211/vht.c index ee715764a828..6832bf6ab69f 100644 --- a/net/mac80211/vht.c +++ b/net/mac80211/vht.c @@ -270,6 +270,22 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata, vht_cap->vht_mcs.tx_mcs_map |= cpu_to_le16(peer_tx << i * 2); } + /* + * This is a workaround for VHT-enabled STAs which break the spec + * and have the VHT-MCS Rx map filled in with value 3 for all eight + * spacial streams, an example is AR9462. + * + * As per spec, in section 22.1.1 Introduction to the VHT PHY + * A VHT STA shall support at least single spactial stream VHT-MCSs + * 0 to 7 (transmit and receive) in all supported channel widths. + */ + if (vht_cap->vht_mcs.rx_mcs_map == cpu_to_le16(0xFFFF)) { + vht_cap->vht_supported = false; + sdata_info(sdata, "Ignoring VHT IE from %pM due to invalid rx_mcs_map\n", + sta->addr); + return; + } + /* finally set up the bandwidth */ switch (vht_cap->cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) { case IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ: |