Message ID | 20220509173354.2482-2-quic_alokad@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | Additional processing in NL80211_CMD_SET_BEACON | expand |
Hi Aloka,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on fc20106d6e2086dd37bf286605c28b28b4f2492c]
url: https://github.com/intel-lab-lkp/linux/commits/Aloka-Dixit/Additional-processing-in-NL80211_CMD_SET_BEACON/20220510-013948
base: fc20106d6e2086dd37bf286605c28b28b4f2492c
config: arm-defconfig (https://download.01.org/0day-ci/archive/20220510/202205100426.MpSAZv4b-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 3abb68a626160e019c30a4860e569d7bc75e486a)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/intel-lab-lkp/linux/commit/4b2583148641664d3a44d750efff98707ea07b23
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Aloka-Dixit/Additional-processing-in-NL80211_CMD_SET_BEACON/20220510-013948
git checkout 4b2583148641664d3a44d750efff98707ea07b23
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/net/wireless/broadcom/brcm80211/brcmfmac/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c:5577:19: error: incompatible function pointer types initializing 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *)' with an expression of type 's32 (struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)' (aka 'int (struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)') [-Werror,-Wincompatible-function-pointer-types]
.change_beacon = brcmf_cfg80211_change_beacon,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
vim +5577 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2526ff21aa77c2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Arend van Spriel 2017-06-09 5549
5c22fb85102a75 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Hante Meuleman 2016-02-17 5550 static struct cfg80211_ops brcmf_cfg80211_ops = {
9f440b7bc78688 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2013-02-08 5551 .add_virtual_intf = brcmf_cfg80211_add_iface,
9f440b7bc78688 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2013-02-08 5552 .del_virtual_intf = brcmf_cfg80211_del_iface,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5553 .change_virtual_intf = brcmf_cfg80211_change_iface,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5554 .scan = brcmf_cfg80211_scan,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5555 .set_wiphy_params = brcmf_cfg80211_set_wiphy_params,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5556 .join_ibss = brcmf_cfg80211_join_ibss,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5557 .leave_ibss = brcmf_cfg80211_leave_ibss,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5558 .get_station = brcmf_cfg80211_get_station,
bf2a7e0499b922 drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c Hante Meuleman 2015-10-08 5559 .dump_station = brcmf_cfg80211_dump_station,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5560 .set_tx_power = brcmf_cfg80211_set_tx_power,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5561 .get_tx_power = brcmf_cfg80211_get_tx_power,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5562 .add_key = brcmf_cfg80211_add_key,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5563 .del_key = brcmf_cfg80211_del_key,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5564 .get_key = brcmf_cfg80211_get_key,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5565 .set_default_key = brcmf_cfg80211_config_default_key,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5566 .set_default_mgmt_key = brcmf_cfg80211_config_default_mgmt_key,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5567 .set_power_mgmt = brcmf_cfg80211_set_power_mgmt,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5568 .connect = brcmf_cfg80211_connect,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5569 .disconnect = brcmf_cfg80211_disconnect,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5570 .suspend = brcmf_cfg80211_suspend,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5571 .resume = brcmf_cfg80211_resume,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5572 .set_pmksa = brcmf_cfg80211_set_pmksa,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5573 .del_pmksa = brcmf_cfg80211_del_pmksa,
cbaa177d2b2f93 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2012-08-30 5574 .flush_pmksa = brcmf_cfg80211_flush_pmksa,
1a87334239757b drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2012-09-27 5575 .start_ap = brcmf_cfg80211_start_ap,
1a87334239757b drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2012-09-27 5576 .stop_ap = brcmf_cfg80211_stop_ap,
a0f07959ee6e7f drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2013-02-08 @5577 .change_beacon = brcmf_cfg80211_change_beacon,
1a87334239757b drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2012-09-27 5578 .del_station = brcmf_cfg80211_del_station,
6b89dcb35bfc78 drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c Hante Meuleman 2014-12-21 5579 .change_station = brcmf_cfg80211_change_station,
e58060723c91a2 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2012-09-19 5580 .sched_scan_start = brcmf_cfg80211_sched_scan_start,
e58060723c91a2 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2012-09-19 5581 .sched_scan_stop = brcmf_cfg80211_sched_scan_stop,
6cd536fe62ef58 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Johannes Berg 2020-04-17 5582 .update_mgmt_frame_registrations =
6cd536fe62ef58 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Johannes Berg 2020-04-17 5583 brcmf_cfg80211_update_mgmt_frame_registrations,
0de8aace0ff499 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2013-02-08 5584 .mgmt_tx = brcmf_cfg80211_mgmt_tx,
7dd56ea45a6686 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Alvin Šipraga 2021-02-08 5585 .set_cqm_rssi_range_config = brcmf_cfg80211_set_cqm_rssi_range_config,
0de8aace0ff499 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2013-02-08 5586 .remain_on_channel = brcmf_p2p_remain_on_channel,
0de8aace0ff499 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Hante Meuleman 2013-02-08 5587 .cancel_remain_on_channel = brcmf_cfg80211_cancel_remain_on_channel,
ee6e7aa383944c drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Rafał Miłecki 2016-05-20 5588 .get_channel = brcmf_cfg80211_get_channel,
27f10e380ad912 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2013-04-05 5589 .start_p2p_device = brcmf_p2p_start_device,
27f10e380ad912 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2013-04-05 5590 .stop_p2p_device = brcmf_p2p_stop_device,
61730d4dfffc2c drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Piotr Haber 2013-04-23 5591 .crit_proto_start = brcmf_cfg80211_crit_proto_start,
61730d4dfffc2c drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Piotr Haber 2013-04-23 5592 .crit_proto_stop = brcmf_cfg80211_crit_proto_stop,
89c2f382fff4ec drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2013-08-10 5593 .tdls_oper = brcmf_cfg80211_tdls_oper,
2a2a5d1835b6f0 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Arend Van Spriel 2017-01-27 5594 .update_connect_params = brcmf_cfg80211_update_conn_params,
2526ff21aa77c2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Arend van Spriel 2017-06-09 5595 .set_pmk = brcmf_cfg80211_set_pmk,
2526ff21aa77c2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c Arend van Spriel 2017-06-09 5596 .del_pmk = brcmf_cfg80211_del_pmk,
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5597 };
5b435de0d78686 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c Arend van Spriel 2011-10-05 5598
Hi Aloka, Thank you for the patch! Yet something to improve: [auto build test ERROR on fc20106d6e2086dd37bf286605c28b28b4f2492c] url: https://github.com/intel-lab-lkp/linux/commits/Aloka-Dixit/Additional-processing-in-NL80211_CMD_SET_BEACON/20220510-013948 base: fc20106d6e2086dd37bf286605c28b28b4f2492c config: mips-randconfig-r011-20220509 (https://download.01.org/0day-ci/archive/20220510/202205100703.8aYeYjJx-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 3abb68a626160e019c30a4860e569d7bc75e486a) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install mips cross compiling tool for clang build # apt-get install binutils-mips-linux-gnu # https://github.com/intel-lab-lkp/linux/commit/4b2583148641664d3a44d750efff98707ea07b23 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Aloka-Dixit/Additional-processing-in-NL80211_CMD_SET_BEACON/20220510-013948 git checkout 4b2583148641664d3a44d750efff98707ea07b23 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/net/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): >> drivers/net/wireless/ath/ath6kl/cfg80211.c:3457:19: error: incompatible function pointer types initializing 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *)' with an expression of type 'int (struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)' [-Werror,-Wincompatible-function-pointer-types] .change_beacon = ath6kl_change_beacon, ^~~~~~~~~~~~~~~~~~~~ 1 error generated. -- >> drivers/net/wireless/marvell/mwifiex/cfg80211.c:4239:19: error: incompatible function pointer types initializing 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *)' with an expression of type 'int (struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)' [-Werror,-Wincompatible-function-pointer-types] .change_beacon = mwifiex_cfg80211_change_beacon, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. -- >> drivers/net/wireless/quantenna/qtnfmac/cfg80211.c:1004:20: error: incompatible function pointer types initializing 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *)' with an expression of type 'int (struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)' [-Werror,-Wincompatible-function-pointer-types] .change_beacon = qtnf_change_beacon, ^~~~~~~~~~~~~~~~~~ 1 error generated. -- >> drivers/net/wireless/ath/wil6210/cfg80211.c:2656:19: error: incompatible function pointer types initializing 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *)' with an expression of type 'int (struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)' [-Werror,-Wincompatible-function-pointer-types] .change_beacon = wil_cfg80211_change_beacon, ^~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. vim +3457 drivers/net/wireless/ath/ath6kl/cfg80211.c f80574ae1538f6 Jouni Malinen 2011-08-30 3429 bdcd81707973cf Kalle Valo 2011-07-18 3430 static struct cfg80211_ops ath6kl_cfg80211_ops = { 55055976fe15f4 Vasanthakumar Thiagarajan 2011-10-25 3431 .add_virtual_intf = ath6kl_cfg80211_add_iface, 55055976fe15f4 Vasanthakumar Thiagarajan 2011-10-25 3432 .del_virtual_intf = ath6kl_cfg80211_del_iface, bdcd81707973cf Kalle Valo 2011-07-18 3433 .change_virtual_intf = ath6kl_cfg80211_change_iface, bdcd81707973cf Kalle Valo 2011-07-18 3434 .scan = ath6kl_cfg80211_scan, bdcd81707973cf Kalle Valo 2011-07-18 3435 .connect = ath6kl_cfg80211_connect, bdcd81707973cf Kalle Valo 2011-07-18 3436 .disconnect = ath6kl_cfg80211_disconnect, bdcd81707973cf Kalle Valo 2011-07-18 3437 .add_key = ath6kl_cfg80211_add_key, bdcd81707973cf Kalle Valo 2011-07-18 3438 .get_key = ath6kl_cfg80211_get_key, bdcd81707973cf Kalle Valo 2011-07-18 3439 .del_key = ath6kl_cfg80211_del_key, bdcd81707973cf Kalle Valo 2011-07-18 3440 .set_default_key = ath6kl_cfg80211_set_default_key, bdcd81707973cf Kalle Valo 2011-07-18 3441 .set_wiphy_params = ath6kl_cfg80211_set_wiphy_params, bdcd81707973cf Kalle Valo 2011-07-18 3442 .set_tx_power = ath6kl_cfg80211_set_txpower, bdcd81707973cf Kalle Valo 2011-07-18 3443 .get_tx_power = ath6kl_cfg80211_get_txpower, bdcd81707973cf Kalle Valo 2011-07-18 3444 .set_power_mgmt = ath6kl_cfg80211_set_power_mgmt, bdcd81707973cf Kalle Valo 2011-07-18 3445 .join_ibss = ath6kl_cfg80211_join_ibss, bdcd81707973cf Kalle Valo 2011-07-18 3446 .leave_ibss = ath6kl_cfg80211_leave_ibss, bdcd81707973cf Kalle Valo 2011-07-18 3447 .get_station = ath6kl_get_station, bdcd81707973cf Kalle Valo 2011-07-18 3448 .set_pmksa = ath6kl_set_pmksa, bdcd81707973cf Kalle Valo 2011-07-18 3449 .del_pmksa = ath6kl_del_pmksa, bdcd81707973cf Kalle Valo 2011-07-18 3450 .flush_pmksa = ath6kl_flush_pmksa, 003353b0d27489 Kalle Valo 2011-09-01 3451 CFG80211_TESTMODE_CMD(ath6kl_tm_cmd) abcb344b3b823c Kalle Valo 2011-07-22 3452 #ifdef CONFIG_PM 52d81a6883fb36 Kalle Valo 2011-11-01 3453 .suspend = __ath6kl_cfg80211_suspend, 52d81a6883fb36 Kalle Valo 2011-11-01 3454 .resume = __ath6kl_cfg80211_resume, abcb344b3b823c Kalle Valo 2011-07-22 3455 #endif 8860020e0be1f0 Johannes Berg 2012-02-13 3456 .start_ap = ath6kl_start_ap, 8860020e0be1f0 Johannes Berg 2012-02-13 @3457 .change_beacon = ath6kl_change_beacon, 8860020e0be1f0 Johannes Berg 2012-02-13 3458 .stop_ap = ath6kl_stop_ap, 33e5308d8a0fb8 Jouni Malinen 2011-12-27 3459 .del_station = ath6kl_del_station, 238751365a1c42 Jouni Malinen 2011-08-30 3460 .change_station = ath6kl_change_station, 63fa1e0ca7a2c1 Jouni Malinen 2011-08-30 3461 .remain_on_channel = ath6kl_remain_on_channel, 63fa1e0ca7a2c1 Jouni Malinen 2011-08-30 3462 .cancel_remain_on_channel = ath6kl_cancel_remain_on_channel, 8a6c8060c0b166 Jouni Malinen 2011-08-30 3463 .mgmt_tx = ath6kl_mgmt_tx, 6cd536fe62ef58 Johannes Berg 2020-04-17 3464 .update_mgmt_frame_registrations = 6cd536fe62ef58 Johannes Berg 2020-04-17 3465 ath6kl_update_mgmt_frame_registrations, 9c2e90ffc97a8f Ben Greear 2015-10-21 3466 .get_antenna = ath6kl_get_antenna, 10509f903ebb7d Kalle Valo 2011-12-13 3467 .sched_scan_start = ath6kl_cfg80211_sscan_start, 10509f903ebb7d Kalle Valo 2011-12-13 3468 .sched_scan_stop = ath6kl_cfg80211_sscan_stop, 06e360ace9434b Bala Shanmugam 2012-05-22 3469 .set_bitrate_mask = ath6kl_cfg80211_set_bitrate, 279b2862ee6ba9 Thomas Pedersen 2012-07-17 3470 .set_cqm_txe_config = ath6kl_cfg80211_set_txe_config, bdcd81707973cf Kalle Valo 2011-07-18 3471 }; bdcd81707973cf Kalle Valo 2011-07-18 3472
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 68713388b617..b388e5c9beb8 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -4195,7 +4195,7 @@ struct cfg80211_ops { int (*start_ap)(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_ap_settings *settings); int (*change_beacon)(struct wiphy *wiphy, struct net_device *dev, - struct cfg80211_beacon_data *info); + struct cfg80211_ap_settings *info); int (*stop_ap)(struct wiphy *wiphy, struct net_device *dev); diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 945ed87d12e0..5ce4215125f0 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -5799,7 +5799,8 @@ static int nl80211_set_beacon(struct sk_buff *skb, struct genl_info *info) struct cfg80211_registered_device *rdev = info->user_ptr[0]; struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; - struct cfg80211_beacon_data params; + struct cfg80211_ap_settings *params; + struct nlattr *attrs; int err; if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP && @@ -5812,16 +5813,35 @@ static int nl80211_set_beacon(struct sk_buff *skb, struct genl_info *info) if (!wdev->beacon_interval) return -EINVAL; - err = nl80211_parse_beacon(rdev, info->attrs, ¶ms); + params = kzalloc(sizeof(*params), GFP_KERNEL); + if (!params) + return -ENOMEM; + + err = nl80211_parse_beacon(rdev, info->attrs, ¶ms->beacon); if (err) goto out; + attrs = info->attrs[NL80211_ATTR_FILS_DISCOVERY]; + if (attrs) { + err = nl80211_parse_fils_discovery(rdev, attrs, params); + if (err) + goto out; + } + + attrs = info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP]; + if (attrs) { + err = nl80211_parse_unsol_bcast_probe_resp(rdev, attrs, params); + if (err) + goto out; + } + wdev_lock(wdev); - err = rdev_change_beacon(rdev, dev, ¶ms); + err = rdev_change_beacon(rdev, dev, params); wdev_unlock(wdev); out: - kfree(params.mbssid_ies); + kfree(params->beacon.mbssid_ies); + kfree(params); return err; } diff --git a/net/wireless/rdev-ops.h b/net/wireless/rdev-ops.h index 439bcf52369c..131fbe9c3199 100644 --- a/net/wireless/rdev-ops.h +++ b/net/wireless/rdev-ops.h @@ -162,7 +162,7 @@ static inline int rdev_start_ap(struct cfg80211_registered_device *rdev, static inline int rdev_change_beacon(struct cfg80211_registered_device *rdev, struct net_device *dev, - struct cfg80211_beacon_data *info) + struct cfg80211_ap_settings *info) { int ret; trace_rdev_change_beacon(&rdev->wiphy, dev, info); diff --git a/net/wireless/trace.h b/net/wireless/trace.h index 228079d7690a..97ca10cbbfee 100644 --- a/net/wireless/trace.h +++ b/net/wireless/trace.h @@ -597,44 +597,50 @@ TRACE_EVENT(rdev_start_ap, TRACE_EVENT(rdev_change_beacon, TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, - struct cfg80211_beacon_data *info), + struct cfg80211_ap_settings *info), TP_ARGS(wiphy, netdev, info), TP_STRUCT__entry( WIPHY_ENTRY NETDEV_ENTRY - __dynamic_array(u8, head, info ? info->head_len : 0) - __dynamic_array(u8, tail, info ? info->tail_len : 0) - __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) + __dynamic_array(u8, head, info ? info->beacon.head_len : 0) + __dynamic_array(u8, tail, info ? info->beacon.tail_len : 0) + __dynamic_array(u8, beacon_ies, + info ? info->beacon.beacon_ies_len : 0) __dynamic_array(u8, proberesp_ies, - info ? info->proberesp_ies_len : 0) + info ? info->beacon.proberesp_ies_len : 0) __dynamic_array(u8, assocresp_ies, - info ? info->assocresp_ies_len : 0) - __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) + info ? info->beacon.assocresp_ies_len : 0) + __dynamic_array(u8, probe_resp, + info ? info->beacon.probe_resp_len : 0) ), TP_fast_assign( WIPHY_ASSIGN; NETDEV_ASSIGN; if (info) { - if (info->head) - memcpy(__get_dynamic_array(head), info->head, - info->head_len); - if (info->tail) - memcpy(__get_dynamic_array(tail), info->tail, - info->tail_len); - if (info->beacon_ies) + if (info->beacon.head) + memcpy(__get_dynamic_array(head), + info->beacon.head, + info->beacon.head_len); + if (info->beacon.tail) + memcpy(__get_dynamic_array(tail), + info->beacon.tail, + info->beacon.tail_len); + if (info->beacon.beacon_ies) memcpy(__get_dynamic_array(beacon_ies), - info->beacon_ies, info->beacon_ies_len); - if (info->proberesp_ies) + info->beacon.beacon_ies, + info->beacon.beacon_ies_len); + if (info->beacon.proberesp_ies) memcpy(__get_dynamic_array(proberesp_ies), - info->proberesp_ies, - info->proberesp_ies_len); - if (info->assocresp_ies) + info->beacon.proberesp_ies, + info->beacon.proberesp_ies_len); + if (info->beacon.assocresp_ies) memcpy(__get_dynamic_array(assocresp_ies), - info->assocresp_ies, - info->assocresp_ies_len); - if (info->probe_resp) + info->beacon.assocresp_ies, + info->beacon.assocresp_ies_len); + if (info->beacon.probe_resp) memcpy(__get_dynamic_array(probe_resp), - info->probe_resp, info->probe_resp_len); + info->beacon.probe_resp, + info->beacon.probe_resp_len); } ), TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG)
FILS discovery and unsolicited broadcast probe response transmissions are configured as part of NL80211_CMD_START_AP, however both stop after userspace uses the NL80211_CMD_SET_BEACON command as these attributes are not processed as part of this command. Add the missing implementation. Modify the local variable in nl80211_set_beacon() and input parameter to rdev_change_beacon() from type struct cfg80211_beacon_data to type struct cfg80211_ap_settings to support the new processing. Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com> --- v3: Dynamic memory allocation for 'params'. Also introduced local variable 'attrs' for better readability. include/net/cfg80211.h | 2 +- net/wireless/nl80211.c | 28 ++++++++++++++++++---- net/wireless/rdev-ops.h | 2 +- net/wireless/trace.h | 52 +++++++++++++++++++++++------------------ 4 files changed, 55 insertions(+), 29 deletions(-)