Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp6024224ybc; Wed, 27 Nov 2019 13:35:48 -0800 (PST) X-Google-Smtp-Source: APXvYqwfVhmuYVrQQs8iQNYkx0vtR63DkVsKTKJb/p2VOHihQQZp53acje5osD9j7m+NzLvgKw3H X-Received: by 2002:a17:906:4e07:: with SMTP id z7mr25841901eju.201.1574890548508; Wed, 27 Nov 2019 13:35:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574890548; cv=none; d=google.com; s=arc-20160816; b=YBc79Pqc0oUzTF7finNXrk+J745pgwsaPskJhA2b6mlzF25YQ05DxJV06HBDqkUaJ8 25FY+E4YRWhyy669FAWk80kH8PHB7I+mgP1Ol+LJLQcQGcT2f806Wj7V78xXyCHJuiFs zL1ZZHkH+7oGXnlydkGMQ+f7bWQT6Xi2qOpO45JwGh4QGS1b4swUPiwP8FIUMJaAnBU3 iVz7WnnvDOIxupIxhzAgl2lJQXIAU06Z2KWe4OzVvhN+H93YeluvidN2OTFpaPOQa5T6 BnS3xIser2OujHKvDeqvWTd0bbolBRf6/D7sPe7bDFyi4UINTjn9zB/GJS3m1K8xnD4F JDxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=qikCE+rJTO+Uvo7IfM9poUC32BqLhjwvxUG9CYQ7MrE=; b=RhEXeWL/5n1CcNDFhhGwqt2jgOH2BUO8it/wgs+lX7Q1Kmx2KVRIHZGpYZzao276LB tvLTuhZmIjGIifHfYQv0cg6fYYpl5BJE8INhgDiHUiZ2MEDSGJyfGdlyaXPICWr3SyCC 1NZXpF70HZQ87XQp5KUjTr1sFwUSMlRrDLpfs7z0Etv0MXU6BzWR/yBFWXkedNo/QBx9 K/MSjWQAcVX4laX4mRpI7KfKfQjdAOhHHttHZ3LtMswbif/rkTxq7mGV3y0ZN/o1UPX5 Yz6Sa+XgcNwbtX0RA6afGNDzuL6a1+XVlByBMYXNO2sS5qUUec1mCBxOWT48OuMLzdl7 D7sg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OPPpaUR2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m27si10371059ejd.377.2019.11.27.13.35.25; Wed, 27 Nov 2019 13:35:48 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OPPpaUR2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730603AbfK0UwZ (ORCPT + 99 others); Wed, 27 Nov 2019 15:52:25 -0500 Received: from mail.kernel.org ([198.145.29.99]:39768 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730206AbfK0UwU (ORCPT ); Wed, 27 Nov 2019 15:52:20 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2146521882; Wed, 27 Nov 2019 20:52:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574887939; bh=d9y+8teIU6Z3Uw7Gq33J3Sg7jR+MWOtnLwmYSK1PHvo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OPPpaUR2uEfstStg7oasVS9o+o9LHZoKqKcBP5nCRNTrUZS59qp+gXPWQcrFkxcdz dBBe9Xy9TeoDd+7CGLbLPonqIT3SF9WCBLxfulbZXzWylRkupXzqsXYr8AMQHRZTCd SsegwdzNRSQQG71BfcZy2Vd7isr8ld5tyjFnugfI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sriram R , Johannes Berg , Sasha Levin Subject: [PATCH 4.14 154/211] cfg80211: Prevent regulatory restore during STA disconnect in concurrent interfaces Date: Wed, 27 Nov 2019 21:31:27 +0100 Message-Id: <20191127203108.555113165@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191127203049.431810767@linuxfoundation.org> References: <20191127203049.431810767@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sriram R [ Upstream commit 113f3aaa81bd56aba02659786ed65cbd9cb9a6fc ] Currently when an AP and STA interfaces are active in the same or different radios, regulatory settings are restored whenever the STA disconnects. This restores all channel information including dfs states in all radios. For example, if an AP interface is active in one radio and STA in another, when radar is detected on the AP interface, the dfs state of the channel will be changed to UNAVAILABLE. But when the STA interface disconnects, this issues a regulatory disconnect hint which restores all regulatory settings in all the radios attached and thereby losing the stored dfs state on the other radio where the channel was marked as unavailable earlier. Hence prevent such regulatory restore whenever another active beaconing interface is present in the same or other radios. Signed-off-by: Sriram R Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- net/wireless/sme.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/wireless/sme.c b/net/wireless/sme.c index d014aea07160c..66cccd16c24af 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c @@ -642,11 +642,15 @@ static bool cfg80211_is_all_idle(void) * All devices must be idle as otherwise if you are actively * scanning some new beacon hints could be learned and would * count as new regulatory hints. + * Also if there is any other active beaconing interface we + * need not issue a disconnect hint and reset any info such + * as chan dfs state, etc. */ list_for_each_entry(rdev, &cfg80211_rdev_list, list) { list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { wdev_lock(wdev); - if (wdev->conn || wdev->current_bss) + if (wdev->conn || wdev->current_bss || + cfg80211_beaconing_iface_active(wdev)) is_all_idle = false; wdev_unlock(wdev); } -- 2.20.1