diff options
author | Johannes Berg | 2023-06-08 16:36:04 +0300 |
---|---|---|
committer | Greg Kroah-Hartman | 2023-09-13 09:42:24 +0200 |
commit | 41b446e4904a613e169c75bfea97acb08a065849 (patch) | |
tree | a74ab728759adef71db08741ade4707d9b648dd9 /net/wireless | |
parent | 5251c835324bee81894fdad1a844d15a79e54883 (diff) |
wifi: cfg80211: remove links only on AP
[ Upstream commit 34d4e3eb67fed9c19719bedb748e5a8b6ccc97a5 ]
Since links are only controlled by userspace via cfg80211
in AP mode, also only remove them from the driver in that
case.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230608163202.ed65b94916fa.I2458c46888284cc5ce30715fe642bc5fc4340c8f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/util.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index 39680e7bad45..f433f3fdd9e9 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -5,7 +5,7 @@ * Copyright 2007-2009 Johannes Berg <johannes@sipsolutions.net> * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2017 Intel Deutschland GmbH - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation */ #include <linux/export.h> #include <linux/bitops.h> @@ -2479,6 +2479,13 @@ void cfg80211_remove_links(struct wireless_dev *wdev) { unsigned int link_id; + /* + * links are controlled by upper layers (userspace/cfg) + * only for AP mode, so only remove them here for AP + */ + if (wdev->iftype != NL80211_IFTYPE_AP) + return; + wdev_lock(wdev); if (wdev->valid_links) { for_each_valid_link(wdev, link_id) |