Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp153498pxj; Mon, 17 May 2021 23:43:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTAYjgW0T8TQDAm+aSL6PO6jL9BQUBGFbqI7dJJl7IekqD575ls3rtXbbObsPzX/CDAzq3 X-Received: by 2002:a05:6e02:e44:: with SMTP id l4mr2782619ilk.271.1621320181930; Mon, 17 May 2021 23:43:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621320181; cv=none; d=google.com; s=arc-20160816; b=V4zXF05gBYfTNULKtEjitX2gyNZx49YDT6Hfb0zB9FkmjCpK12DZoBfYUysG/d+elg cmFAIZ68q6l28vRIf3UWmqlDic8BNMLf9wKnqm+T+u4Eo3+fn97U0d9JnxPUF1imItzc GbqRzrIl4ayBw1kdWGMMOt2AUOvzgroFb/cwupd5qBCElWYH5YT/OOnK+wDt7xvfRQ5X SerhTV4GmlX1gJn9ZtJl1Ajo5eUpo3x/EOiOmOqQx1UV8A1rI1DsoPYvY0C6KaU2dIH5 9gzpr3LD9ad4HG9nFWJxyH0y9yyTSRX6X0ldwKYVwIsJZqXW8BhDLifsSUWV/Jsv2pGJ 2rKA== 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=FHd4NZlGbrbfW6lclsw3FGeRBrQH9FqllaW3Yf7/5mI=; b=UHZzprxpxsukUDpiGPVWt+M0RHM2Fhdl8vvP6xswOwVfP1+oHUhi4rFGh9wzsQtnlU GuaAQoiP96+nC0EhlkFCJtnAmAA9Lk5PNzLMwU8tNZMLhD4P0mKVYdOijjycrXrOZi7a 1fd/cJX8nVwTe5ekURmUGPTQlfQWcbj1xbDhG6kRJVwHGzQZlH5Dzfk26j0D28kezVe1 di9WJFpgtZlSMD4s8IfaCsmf4AGuD8V3QOCUb3F+HpNEgzLTrXysqM+4y5EK3T2/jt+w Mc0lkAx3FRcXKSES7l+dCTORj3lTRM9/2Dp3vVieZnHnm63CHLsx13e64NLrMkKqCGE7 pCjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=cBH2yUuM; 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 i17si8106222ioi.33.2021.05.17.23.42.40; Mon, 17 May 2021 23:43:01 -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=cBH2yUuM; 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 S239621AbhEQOwM (ORCPT + 99 others); Mon, 17 May 2021 10:52:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:50784 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241294AbhEQOoW (ORCPT ); Mon, 17 May 2021 10:44:22 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 353C56195F; Mon, 17 May 2021 14:20:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1621261240; bh=wm62CXnlQlROjrFU1xBW5vxum5weK+uKY4uM6pJh2/I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cBH2yUuMxkfowopXUX63qItBV5Hc6XfhXULle3Yr/nmaU5TQnAoBLX4+onkyDBTKc sTR4+WwFML1AQ9jJWqOvVsHnvWGSSLKUvV8zDd5sd/qBYc4N1V8MzNB8VtI9IWQAmX vmkwZdE2quBGhu56W3Oo5H9wIB0atBQ4axBL36FQ= 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 5.4 023/141] mac80211: clear the beacons CRC after channel switch Date: Mon, 17 May 2021 16:01:15 +0200 Message-Id: <20210517140243.543263890@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517140242.729269392@linuxfoundation.org> References: <20210517140242.729269392@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 17a3a1c938be..44fd922cc32a 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1215,6 +1215,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