summaryrefslogtreecommitdiffstats
path: root/net/wireless/mlme.c
diff options
context:
space:
mode:
authorAditya Kumar Singh <quic_adisi@quicinc.com>2024-09-06 08:44:23 +0200
committerJohannes Berg <johannes.berg@intel.com>2024-09-06 13:01:05 +0200
commit81f67d60ebf290da068af96ad0c4a4e4faebdf1d (patch)
tree01dd686a374f1af25ab6a5a47c09fc02680deb54 /net/wireless/mlme.c
parentwifi: cfg80211: move DFS related members to links[] in wireless_dev (diff)
downloadlinux-81f67d60ebf290da068af96ad0c4a4e4faebdf1d.tar.xz
linux-81f67d60ebf290da068af96ad0c4a4e4faebdf1d.zip
wifi: cfg80211: handle DFS per link
Currently, during starting a radar detection, no link id information is parsed and passed down. In order to support starting radar detection during Multi Link Operation, it is required to pass link id as well. Add changes to first parse and then pass link id in the start radar detection path. Additionally, update notification APIs to allow drivers/mac80211 to pass the link ID. However, everything is handled at link 0 only until all API's are ready to handle it per link. Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Link: https://patch.msgid.link/20240906064426.2101315-6-quic_adisi@quicinc.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/mlme.c')
-rw-r--r--net/wireless/mlme.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index fddd6a62b942..115c8cd28aaf 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -1110,18 +1110,19 @@ EXPORT_SYMBOL(__cfg80211_radar_event);
void cfg80211_cac_event(struct net_device *netdev,
const struct cfg80211_chan_def *chandef,
- enum nl80211_radar_event event, gfp_t gfp)
+ enum nl80211_radar_event event, gfp_t gfp,
+ unsigned int link_id)
{
struct wireless_dev *wdev = netdev->ieee80211_ptr;
struct wiphy *wiphy = wdev->wiphy;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
unsigned long timeout;
- /* not yet supported */
- if (wdev->valid_links)
+ if (WARN_ON(wdev->valid_links &&
+ !(wdev->valid_links & BIT(link_id))))
return;
- trace_cfg80211_cac_event(netdev, event);
+ trace_cfg80211_cac_event(netdev, event, link_id);
if (WARN_ON(!wdev->links[0].cac_started &&
event != NL80211_RADAR_CAC_STARTED))