CHROMIUMOS: mac80211: Salvage BSS info for botched HT Association
The mac80211 flags errors in the HT Information IE if the channel
information does not match the associated channel. Unfortunately
in this condition nothing in the HT information element can be
trusted. However, at this point we have already signalled to the
AP in our association request that we wanted to do HT.
As a workaround to these broken APs, we should try to see if the
beacon/probe response of the AP fared any better than the association
response. If it did, we can use that to at least configure our
receive side so we will hopefully not lose downstream throughput
due to the AP trying bitrates that we cannot receive.
This change copies the HT Information IE into the ieee80211_bss
structure so it can be retrieved in ieee80211_enable_ht during
association. We can then use this data as a backup to the
association response IEs and configure our receive channel
appropriately.
Signed-off-by: Paul Stewart <pstew@chromium.org>
BUG=chromium-os:25483
TEST=Associate to known offending AP and ensure that the correct
message appears in the logs. Ensure that pages load quickly
after association to such APs.
Change-Id: Ib26a607d7dccf0334cc987e720261d9b450a538b
Reviewed-on: https://gerrit.chromium.org/gerrit/19405
Reviewed-by: Gary Morain <gmorain@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>