]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
mac80211: clear the beacon's CRC after channel switch
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 8 Apr 2021 12:31:25 +0000 (14:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 08:29:31 +0000 (10:29 +0200)
commita2cdbf2b54af46e1170b1ba57b2ffc58af881a55
tree8a2c73a2ddce67d13679c8412f3d7c4e71869bf3
parent52e986b78eb07f1f1d9d4cc2cea6e9c05740ef97
mac80211: clear the beacon's CRC after channel switch

[ Upstream commit d6843d1ee283137723b4a8c76244607ce6db1951 ]

After channel switch, we should consider any beacon with a
CSA IE as a new switch. If the CSA IE is a leftover from
before the switch that the AP forgot to remove, we'll get
a CSA-to-Self.

This caused issues in iwlwifi where the firmware saw a beacon
with a CSA-to-Self with mode = 1 on the new channel after a
switch. The firmware considered this a new switch and closed
its queues. Since the beacon didn't change between before and
after the switch, we wouldn't handle it (the CRC is the same)
and we wouldn't let the firmware open its queues again or
disconnect if the CSA IE stays for too long.

Clear the CRC valid state after we switch to make sure that
we handle the beacon and handle the CSA IE as required.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://lore.kernel.org/r/20210408143124.b9e68aa98304.I465afb55ca2c7d59f7bf610c6046a1fd732b4c28@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/mlme.c