Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp647596pxy; Wed, 5 May 2021 10:16:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzD9fYsii9dH2VLzADVvEQTfbonWvxrQYNxeTUyQQZRc584lsCZuroi4f4gw/bBh8qiP6KH X-Received: by 2002:a05:6402:1643:: with SMTP id s3mr93796edx.280.1620234977010; Wed, 05 May 2021 10:16:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620234977; cv=none; d=google.com; s=arc-20160816; b=CfOFKOjSyCYEFbcgBxj1ZXhqbOYhn1xL3waHrKmMxTJUQYhYgDHDHKOsGTAYeopJC2 j6Kclg1iiP6KBfZSZAVGtaDQUwIJgum5o5MZ2cdMJLdlwmqRYBmg18rVERAuBSwhBGCn dYEJb3WQZ5Rcg8T4LdsXyCV++Uqp0os6AsyYeviWk8yjqHoIEDazitxO49UMlDT/UO9W doiJW90RvS7bxOthDfdWoYb/MJ6VdAFhUCihzbXbw9GGSX14t40svZRIFCNXD8JGLX0h HmDYKOkqqy8XUV2fub4cQ5chJg9grLHVyOm/8SLowPzRoQwAapUtsRzFAzncyIsVeoGo DYXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=RduwmJoitS/D/NbjJ9LAyI28NFJ1glbHQlVI7n1kooM=; b=tDFRsaOkgEgOgy47NF4FlJZkR4/ZV4Nd/dlugGGI9k89Bmu0FgFiRHmnYvRpt/FjLD KMGOG54k4A3yBxa8FwbPcQcuNqm7NK+s6s38b1jiX85nFgbjBCuSaBWfbol4H/KA3sHR 8hIMbd2HPXMzLJ/Hx8EQ8pKL2e+1AV1TXzGKBer3F7IsKp11Uh6+UIHg2eKycgi92o7r LwKt4lb9CNbRsa5tBxmtCGChr1JBsgMBiXkrVW/6uKKHSVsprUPH11aYYzAeLZ31kYdH dlotdAirwuHvs+If3w6HocbOHbmTl3G41yi1B5Ycdl0Zi5V4wTko+GK9u2C9/vOoLMao ll0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LRoCK7BV; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ne11si2788397ejc.263.2021.05.05.10.15.36; Wed, 05 May 2021 10:16:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LRoCK7BV; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237779AbhEERNP (ORCPT + 99 others); Wed, 5 May 2021 13:13:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:60668 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238230AbhEERFP (ORCPT ); Wed, 5 May 2021 13:05:15 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6087461408; Wed, 5 May 2021 16:42:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620232938; bh=zHJlzdD2RzBeGIFmuvjHqYOE+KGNr7N8qd/WgEGTPz0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LRoCK7BVM8OQlg/kQxkzdo1bKVuWJl80lIhQvoVqGwJ19KfCc4v6ECi2zxji7kMsy 7fZZHGAakhUDAZiidBTXK65si/fZDB9QE9zAUf2yL7SWdgyoROT8KB7u/cxT+O2V3c pbl1ffKxHgOXMRP0wpnsDU6bptfgAE6HfkIKAITpkZR6lvCK1aYF4ktDpVsWcINTaO rkBEQu2DoCRnIDEzl8ujy60ePWZaQDrnV1syLH/wCzsCQJV7QAk8F41BwFtAP8M6Fi GfoCGQnTwWtzfbOECAHk66qdX7zKY1V0hm4INTWCpeD36nt36dWH4NM+3Scpyn7hlz Ra7KCHY9zDVOA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Emmanuel Grumbach , Johannes Berg , Sasha Levin , linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH AUTOSEL 4.4 11/19] mac80211: clear the beacon's CRC after channel switch Date: Wed, 5 May 2021 12:41:54 -0400 Message-Id: <20210505164203.3464510-11-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210505164203.3464510-1-sashal@kernel.org> References: <20210505164203.3464510-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Emmanuel Grumbach [ 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 Link: https://lore.kernel.org/r/20210408143124.b9e68aa98304.I465afb55ca2c7d59f7bf610c6046a1fd732b4c28@changeid Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- net/mac80211/mlme.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 4ab78bc6c2ca..7e2f0cd94e62 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1133,6 +1133,11 @@ static void ieee80211_chswitch_post_beacon(struct ieee80211_sub_if_data *sdata) sdata->vif.csa_active = false; ifmgd->csa_waiting_bcn = false; + /* + * If the CSA IE is still present on the beacon after the switch, + * we need to consider it as a new CSA (possibly to self). + */ + ifmgd->beacon_crc_valid = false; ret = drv_post_channel_switch(sdata); if (ret) { -- 2.30.2