Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp622985pxj; Thu, 20 May 2021 18:12:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3wK+xsLw0WXTonW0wTleySCw6j+8/VUZpENqZMqd0Y+vaP2dsYL2JVKidmFa1jJ+Atbla X-Received: by 2002:a17:907:2067:: with SMTP id qp7mr7439422ejb.333.1621559535785; Thu, 20 May 2021 18:12:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621559535; cv=none; d=google.com; s=arc-20160816; b=X0PXaG7q8h9pSEqJ7rceO9pinPEzVytqN5NXp1Obv1AL6B3ME+svZfQ4+K2IFr94gY xxyftH7L6R0kRb0sEVEzIuLwLlIp22Wu+N+t6I9QejThowM0ensDB4IRMwHEtYL8pnNr uokhiw8glXohF3m78GcV+JPQNItmhtjMvwcfNEiDhhdTyGWJrAbZ/L/qyu9Sq0Syrq+E 90nO96MXnjo77o07UoEC28goTTTYnT1trVa3G83CTIUstULon9n6ECPpBMSruMEkZvx1 nKJNJzRLyHu0g7GY3N574/gyNtIqLz7u9b1OhBM9Tka4cyDgn/oAKYg8GvJTSyg9vK1P 6GCw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=RduwmJoitS/D/NbjJ9LAyI28NFJ1glbHQlVI7n1kooM=; b=UAQ1eodxrYw8NKYPQkICMd7VlhEG/Uk53ndT+FfgafrClO18yLiwnu4MQhuvP5jueE bJVi+zNUbFM0XyTiqvAKOQmFCM0sIE07soh5bakrvKbsCgR4ZParnHx/jlTzodDZFVF6 Ja7VebP2OLphdor5bLqlZnx9+w5Owefo3vU35YZz8sQzM4NYgm+in82oUzl5mItMZiqo 4ZLBuyYhkpp17VCijGDGq3q1fzcq6gye+fonvcTdHpHdtSlNxymrj2RQcQ8Nc0Et66r9 goVlzFS5hruxTewfGeKrEpbGGRIcPOUU9B66RfEtz5xSi47vVYtua6Pj7set0rjFWfEu BUiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZhhGmjG0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h15si3753678eds.519.2021.05.20.18.11.51; Thu, 20 May 2021 18:12:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@linuxfoundation.org header.s=korg header.b=ZhhGmjG0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241860AbhETLlK (ORCPT + 99 others); Thu, 20 May 2021 07:41:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:43346 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240347AbhETLUX (ORCPT ); Thu, 20 May 2021 07:20:23 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id CD01A61D81; Thu, 20 May 2021 10:11:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1621505461; bh=zHJlzdD2RzBeGIFmuvjHqYOE+KGNr7N8qd/WgEGTPz0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZhhGmjG0ZvQQkZi3ifudKK4k2Bl0J9vrgtDt1eiFnYmMvB74Vo+sdl65PsFz9BKvB 35U/C52AjL/cWsX5SLmZnihDdArUV5sHIWCjpSEP+m61H4j//2XrimaJpZozfSD5+R UrSc3w4N2/lsYmmrSsuoJhBKpUapjl1KM6YDgtcY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Emmanuel Grumbach , Johannes Berg , Sasha Levin Subject: [PATCH 4.4 144/190] mac80211: clear the beacons CRC after channel switch Date: Thu, 20 May 2021 11:23:28 +0200 Message-Id: <20210520092106.948877040@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210520092102.149300807@linuxfoundation.org> References: <20210520092102.149300807@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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