Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp624555pxy; Wed, 5 May 2021 09:47:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyCXpoukLOkK6q8DktfLbAwDZjc+z3886rdAYhBsiS0MjLRFLsYaGkAotwAxShavpA+fKSu X-Received: by 2002:a17:90b:3116:: with SMTP id gc22mr35236821pjb.212.1620233237991; Wed, 05 May 2021 09:47:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620233237; cv=none; d=google.com; s=arc-20160816; b=KrP/KwSx5EoFKeoIK5YVxSTRUBEkExeRTMVX8dZzU+V8XQMAqKFx9fQUTZ977rYKtR 0UGql4JTcnYOHvOomAXe00hkU38CnhBq+UCWpIiqAr+j/ZA+UyYZ1sz+Um/zWGLCxRgq GwH1rc0b9Og1N7AIijnvxCzLTDHwETUNiVSrESaxotZiZcU6ij0zqJxtrab0yiIRidrY Ssf0COEGaVe3YZGK9G7I8DYTXdu4wjgokV1ythaKm1ppQXPn55ITc1og53UCGlOL+D4k XYDNBtftdSjg259x6SLgmv23NaiMGA7gsKW05/kPNaVkYfz837fOivmDeSuaNal9Pa3d clMQ== 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=BXJU8K9/ze+IvDLCll/bKWggeiFObv2PJGy/csLOSUY=; b=Y9P0UzFm+GumHi/vzW71NrinHRMMoZGvMvnMLBQTnWzca+LkdXTbsL1aj6Vm629MgZ BgGSmsMuV6grl3mT0vH0Ldrb3QxciTH+5l8tZckDZs6RLW4Y6b/sLjrP7RCY7CrxlA0e DM5dAK6kfMaTw2nd3DW2qw0k6XHj9Va2Gd3yAsRxy2Q+BH6Q7R41jBT1gV/87IkhwyXs dFpLzjIUnIdgydlqirufFnlK4ByYJc2UVO7h/HR2bl5y00eXMIKEfqgtR3wqn07ByYCz NazdNTca9kjutZvSCIAltsbL/PpjwRW2IFN95aNhwoEeXetoB7qdD0pWNYdxJCg6EJv+ RT3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lbrhTVLW; 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 fw13si3303097pjb.106.2021.05.05.09.47.04; Wed, 05 May 2021 09:47:17 -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=lbrhTVLW; 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 S235734AbhEEQrS (ORCPT + 99 others); Wed, 5 May 2021 12:47:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:49996 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233912AbhEEQoH (ORCPT ); Wed, 5 May 2021 12:44:07 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7AD6A616EB; Wed, 5 May 2021 16:35:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620232521; bh=CZjNHLIKs8JfAun4i6BOWbAF5qtPJxRCj3HOV1t0/B0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lbrhTVLWirvcAcIvU9zz2bVZN/+dc1sThHTQtkjbYW1DBQac4O9BujZd8RMDEI7I0 sQry/x365aJo9H3CUiWnyXsVVuxu3fO0PaDHkQjbYxBg1KGh5MFoCCoJYMDKuujmcO tlAF4lkagSbJsv5CZzrxocyhn9lHFv2YYECo8iUc24cfhEZ33/J5/csvYZhHGMnSjS 3SIyiANLWQ/zD7yiBcDJ9TiQ8No6CNKf/UmLiAGwiZZRhY+HZhC1W0O8fm9Y8veDTh R9xDWVZJuX5odKvfq02N0z8k+PT1CM6kGuwBuFoZiGZMYqvd1ZlAyi1sYOKTAqL8Gs 6IHWUKzMEVGTw== 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 5.11 047/104] mac80211: clear the beacon's CRC after channel switch Date: Wed, 5 May 2021 12:33:16 -0400 Message-Id: <20210505163413.3461611-47-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210505163413.3461611-1-sashal@kernel.org> References: <20210505163413.3461611-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 b7155b078b19..c9eb75603576 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1295,6 +1295,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