diff options
author | Johannes Berg <johannes.berg@intel.com> | 2020-01-31 13:12:58 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2020-03-20 14:42:20 +0100 |
commit | 660d81dae895a61da5774bc70f43ef30fb878f64 (patch) | |
tree | 114a57fff64617de7c19615be3e91fba8ce66dd1 | |
parent | 0c138a5c2bcf3afeff722fb71782bf8e798b4a1b (diff) | |
download | linux-starfive-660d81dae895a61da5774bc70f43ef30fb878f64.tar.gz linux-starfive-660d81dae895a61da5774bc70f43ef30fb878f64.tar.bz2 linux-starfive-660d81dae895a61da5774bc70f43ef30fb878f64.zip |
mac80211: consider WLAN_EID_EXT_HE_OPERATION for parsing CRC
We use the parsing CRC for checking if the beacon changed, and
if the WLAN_EID_EXT_HE_OPERATION extended element changes we
need to track it so we can react to that. Include it in the CRC
calculation.
Link: https://lore.kernel.org/r/20200131111300.891737-22-luca@coelho.fi
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/util.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index ea7d277a8c45..20436c86b9bf 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -912,8 +912,12 @@ static void ieee80211_parse_extension_element(u32 *crc, break; case WLAN_EID_EXT_HE_OPERATION: if (len >= sizeof(*elems->he_operation) && - len == ieee80211_he_oper_size(data) - 1) + len == ieee80211_he_oper_size(data) - 1) { + if (crc) + *crc = crc32_be(*crc, (void *)elem, + elem->datalen + 2); elems->he_operation = data; + } break; case WLAN_EID_EXT_UORA: if (len == 1) |