2022-05-06 03:04:49

by Aloka Dixit

[permalink] [raw]
Subject: [PATCH v2 2/2] mac80211: process additional data in ieee80211_change_beacon()

Modify the prototype for ieee80211_change_beacon() to accept
an instance of struct cfg80211_ap_settings instead of
struct cfg80211_beacon_data to process FILS discovery and
unsolicited broadcast probe response transmission configuration.

Set the respective flags when applicable.

Signed-off-by: Aloka Dixit <[email protected]>
---
v1:
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

net/mac80211/cfg.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index f1d211e61e49..22843184d6ee 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1313,11 +1313,12 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
}

static int ieee80211_change_beacon(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_beacon_data *params)
+ struct cfg80211_ap_settings *params)
{
struct ieee80211_sub_if_data *sdata;
struct beacon_data *old;
int err;
+ u32 changed;

sdata = IEEE80211_DEV_TO_SUB_IF(dev);
sdata_assert_lock(sdata);
@@ -1332,10 +1333,28 @@ static int ieee80211_change_beacon(struct wiphy *wiphy, struct net_device *dev,
if (!old)
return -ENOENT;

- err = ieee80211_assign_beacon(sdata, params, NULL, NULL);
+ err = ieee80211_assign_beacon(sdata, &params->beacon, NULL, NULL);
if (err < 0)
return err;
- ieee80211_bss_info_change_notify(sdata, err);
+ changed = err;
+
+ if (params->fils_discovery.max_interval) {
+ err = ieee80211_set_fils_discovery(sdata,
+ &params->fils_discovery);
+ if (err < 0)
+ return err;
+ changed |= BSS_CHANGED_FILS_DISCOVERY;
+ }
+
+ if (params->unsol_bcast_probe_resp.interval) {
+ err = ieee80211_set_unsol_bcast_probe_resp(sdata,
+ &params->unsol_bcast_probe_resp);
+ if (err < 0)
+ return err;
+ changed |= BSS_CHANGED_UNSOL_BCAST_PROBE_RESP;
+ }
+
+ ieee80211_bss_info_change_notify(sdata, changed);
return 0;
}

--
2.31.1