mac80211: fix HT capability overrides for AP station
authorJohannes Berg <johannes.berg@intel.com>
Fri, 1 Mar 2013 10:54:43 +0000 (11:54 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 6 Mar 2013 15:36:02 +0000 (16:36 +0100)
commitc07270b605f49039327c35224e27d1d3e802f8a4
tree5c6b79b0fd7b357804ffdabdc000e97f62435e0d
parent4f4b9357e45c121e3b350b938adc33781d6834fd
mac80211: fix HT capability overrides for AP station

HT capabilites are asymmetric -- e.g. beamforming is both an
RX and TX capability. If, for example, we support RX but not
TX, the RX capability of the AP station is masked out (if it
supports it). This works correctly if it's really the driver
capability.

If, on the other hand, the reason for not supporting TX BF
is that it was removed by HT capability overrides then the
wrong thing happens: the AP's TX capability will be removed
rather than its RX capability, because the override function
works on own capabilities, not remote ones, and doesn't take
the asymmetry into account.

To fix this make a copy of our own capabilities, apply the
overrides to them (where needed) and then use that to set up
the peer's capabilities.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ht.c