CHROMIUMOS: mac80211: Salvage BSS info for botched HT Association
authorPaul Stewart <pstew@chromium.org>
Thu, 10 May 2012 01:23:33 +0000 (01:23 +0000)
committerOlof Johansson <olof@lixom.net>
Fri, 1 Jun 2012 07:03:33 +0000 (00:03 -0700)
commit210193ec1cf5522c947f1c301709543cc289ef6d
tree4308d04f6701399e972de1214012bd9fff9632fd
parenta0a217996dd9ca264325f179f6d4ecc1e1a40c0f
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>
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/mac80211/scan.c