From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 35642C2BA05 for ; Wed, 5 May 2021 17:06:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 14B6C610A1 for ; Wed, 5 May 2021 17:06:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238335AbhEERFm (ORCPT ); Wed, 5 May 2021 13:05:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:60728 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237741AbhEERBF (ORCPT ); Wed, 5 May 2021 13:01:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A2D0D61426; Wed, 5 May 2021 16:40:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620232829; bh=v7WNeIKAggA4A//ov3l2VfYNkIpomM+0S0k8zUSHcaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bo2VpIMuuOernWVPA6Qu5en9UHjjXrzLgClgYPnxupRMMMFwYDFCIkqx84dgRHRPW NY2iJwyN8XMACQTB3fymbAnpFJxp1ic+fD07Vyh6tcYzbBDdlytts4MvTw1h33gHU+ SiWqzfM4yzZlly0nucj0956NIgwp9j/DDZheivIOlT24TsqatUvBmrNptxf//hR7k9 CJaEQvgSVNqGz/YpspFLMY/MLnMWeTD3iW2iv5Pxhv4XTOVO4PyLfkwBlGZGlKQXSs 95ds1g9lB/jkaF/xrbwE6Iz7SeA5JqEjlWOQdhOgirYFAdoqVe0dDUi73+/X8jNDiQ SPSbGquvoVIUA== 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.19 17/32] mac80211: clear the beacon's CRC after channel switch Date: Wed, 5 May 2021 12:39:49 -0400 Message-Id: <20210505164004.3463707-17-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210505164004.3463707-1-sashal@kernel.org> References: <20210505164004.3463707-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: netdev@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 c53a332f7d65..cbcb60face2c 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1185,6 +1185,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