Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3809980ybt; Tue, 23 Jun 2020 11:14:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8SFjHDEM/un0knBml6lYwyWEvXMFWWieiGELaSZwj6lcb7xeWx3qBcHmj4pNuWOapvmEJ X-Received: by 2002:a17:906:fb9b:: with SMTP id lr27mr20669958ejb.405.1592936040704; Tue, 23 Jun 2020 11:14:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592936040; cv=none; d=google.com; s=arc-20160816; b=hsLeC847z7pmnIebMrxmGE8Bt46vu09BlxTQ1Qp4ySJbeeLVe2NLmGYo+0PK3KyKEI Al5cgrcPYuRUQw3cNKJQMR5wEcH0RMG29GU2M7+HyReX5tinnwVos27niBZ9BajKEquv 7r14d+k9eiYYS2ecC8vW9cLfcqDHq4hsgNId7n/6o5I0y2Ht6XRoKy7UjNfVuXpzuREi Go8g1nHImG5RcSm01EdkKaLlIvF+cEy00QhmAhqh3GSU94I3Ck8LTx7K7H6DZSE/i3Ns 3ScTL2rqEKbrc1xAmK3bJ4F5Ji/fm4z3pnnyjlQTk46uK23QqgiYSTVae7H/CO6xKpUh 9qSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:content-transfer-encoding :mime-version:message-id:date:cc:to:from; bh=mBJVcghf94qyTQpcUCa1RIp5wjibizdUc2zD022lDjM=; b=dJ9s7K+x2tXwsf67j4HLCsZf+vtkvSseateogj8FTESh/LYSfwjRsht0G1AV9QdxWN aFSFFquoIRXmEORevSq2pDHqkRx6U38ApxgUyuU5GEOJ8jJ0X+ldXLEGvdgYc7p9yDY3 Qt8PwHnfgq8hQ9Eo8anObK5J4vWCd9z4g1kBAJHrTcMLNQnLpd5vhFnGrVDY8/L2wDJU aRK8+B3OVn0PdlIxO9Jh0MLCG5WeMxhzpM4axOxKd4eir2Tl7lDT1sEgvEYwpbtgp22z P4u0FloBmpkFdFWO739uybfAA1ToAZZyrLRmcboz7cQ2zo98Wbu8FPawU7eb+dhSP+qv YA+Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y18si11434731ejc.318.2020.06.23.11.13.25; Tue, 23 Jun 2020 11:14:00 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733059AbgFWSKe (ORCPT + 99 others); Tue, 23 Jun 2020 14:10:34 -0400 Received: from paleale.coelho.fi ([176.9.41.70]:38060 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728916AbgFWSKe (ORCPT ); Tue, 23 Jun 2020 14:10:34 -0400 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=redipa.ger.corp.intel.com) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1jnnNP-001DUk-8a; Tue, 23 Jun 2020 21:10:31 +0300 From: Luca Coelho To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org Date: Tue, 23 Jun 2020 21:10:29 +0300 Message-Id: X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.4 Subject: [PATCH] cfg80211: flush scan entries upon suspend Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Emmanuel Grumbach When we suspend, we can't really remember our BSS table. Purge all the data. Export this function to allow driver to purge the BSS table in case they feel the need to. iwlwifi will need to do that. Signed-off-by: Emmanuel Grumbach Signed-off-by: Luca Coelho --- include/net/cfg80211.h | 6 ++++++ net/wireless/scan.c | 10 ++++++++++ net/wireless/sysfs.c | 2 ++ 3 files changed, 18 insertions(+) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index fc7e8807838d..03a72b5b1986 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -7882,4 +7882,10 @@ void cfg80211_update_owe_info_event(struct net_device *netdev, struct cfg80211_update_owe_info *owe_info, gfp_t gfp); +/** + * cfg80211_bss_flush - resets all the scan entries + * @wiphy: the wiphy + */ +void cfg80211_bss_flush(struct wiphy *wiphy); + #endif /* __NET_CFG80211_H */ diff --git a/net/wireless/scan.c b/net/wireless/scan.c index 74ea4cfb39fb..e67a74488bbe 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@ -712,6 +712,16 @@ void cfg80211_bss_expire(struct cfg80211_registered_device *rdev) __cfg80211_bss_expire(rdev, jiffies - IEEE80211_SCAN_RESULT_EXPIRE); } +void cfg80211_bss_flush(struct wiphy *wiphy) +{ + struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); + + spin_lock_bh(&rdev->bss_lock); + __cfg80211_bss_expire(rdev, jiffies); + spin_unlock_bh(&rdev->bss_lock); +} +EXPORT_SYMBOL(cfg80211_bss_flush); + const struct element * cfg80211_find_elem_match(u8 eid, const u8 *ies, unsigned int len, const u8 *match, unsigned int match_len, diff --git a/net/wireless/sysfs.c b/net/wireless/sysfs.c index 3ac1f48195d2..b670f0d78621 100644 --- a/net/wireless/sysfs.c +++ b/net/wireless/sysfs.c @@ -5,6 +5,7 @@ * * Copyright 2005-2006 Jiri Benc * Copyright 2006 Johannes Berg + * Copyright (C) 2020 Intel Corporation */ #include @@ -107,6 +108,7 @@ static int wiphy_suspend(struct device *dev) if (rdev->wiphy.registered) { if (!rdev->wiphy.wowlan_config) { cfg80211_leave_all(rdev); + cfg80211_bss_flush(&rdev->wiphy); cfg80211_process_rdev_events(rdev); } if (rdev->ops->suspend) -- 2.27.0