* [PATCH v3 0/2] Additional processing in NL80211_CMD_SET_BEACON @ 2022-05-09 17:33 Aloka Dixit 2022-05-09 17:33 ` [PATCH v3 1/2] nl80211: process additional attributes " Aloka Dixit 2022-05-09 17:33 ` [PATCH v3 2/2] mac80211: process additional data in ieee80211_change_beacon() Aloka Dixit 0 siblings, 2 replies; 5+ messages in thread From: Aloka Dixit @ 2022-05-09 17:33 UTC (permalink / raw) To: johannes; +Cc: linux-wireless, Aloka Dixit FILS discovery and unsolicited broadcast probe response transmissions are configured as part of NL80211_CMD_START_AP, however both stop after userspace issues NL80211_CMD_SET_BEACON command as these attributes are not processed as part of this command. Add the missing implementation in nl80211 and mac80211 to fix the issue. Aloka Dixit (2): nl80211: process additional attributes in NL80211_CMD_SET_BEACON mac80211: process additional data in ieee80211_change_beacon() include/net/cfg80211.h | 2 +- net/mac80211/cfg.c | 25 +++++++++++++++++--- net/wireless/nl80211.c | 28 ++++++++++++++++++---- net/wireless/rdev-ops.h | 2 +- net/wireless/trace.h | 52 +++++++++++++++++++++++------------------ 5 files changed, 77 insertions(+), 32 deletions(-) base-commit: fc20106d6e2086dd37bf286605c28b28b4f2492c -- 2.31.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/2] nl80211: process additional attributes in NL80211_CMD_SET_BEACON 2022-05-09 17:33 [PATCH v3 0/2] Additional processing in NL80211_CMD_SET_BEACON Aloka Dixit @ 2022-05-09 17:33 ` Aloka Dixit 2022-05-09 21:05 ` kernel test robot 2022-05-09 23:10 ` kernel test robot 2022-05-09 17:33 ` [PATCH v3 2/2] mac80211: process additional data in ieee80211_change_beacon() Aloka Dixit 1 sibling, 2 replies; 5+ messages in thread From: Aloka Dixit @ 2022-05-09 17:33 UTC (permalink / raw) To: johannes; +Cc: linux-wireless, Aloka Dixit 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(-) 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) -- 2.31.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] nl80211: process additional attributes in NL80211_CMD_SET_BEACON 2022-05-09 17:33 ` [PATCH v3 1/2] nl80211: process additional attributes " Aloka Dixit @ 2022-05-09 21:05 ` kernel test robot 2022-05-09 23:10 ` kernel test robot 1 sibling, 0 replies; 5+ messages in thread From: kernel test robot @ 2022-05-09 21:05 UTC (permalink / raw) To: Aloka Dixit, johannes; +Cc: llvm, kbuild-all, linux-wireless, Aloka Dixit 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 -- 0-DAY CI Kernel Test Service https://01.org/lkp ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] nl80211: process additional attributes in NL80211_CMD_SET_BEACON 2022-05-09 17:33 ` [PATCH v3 1/2] nl80211: process additional attributes " Aloka Dixit 2022-05-09 21:05 ` kernel test robot @ 2022-05-09 23:10 ` kernel test robot 1 sibling, 0 replies; 5+ messages in thread From: kernel test robot @ 2022-05-09 23:10 UTC (permalink / raw) To: Aloka Dixit, johannes; +Cc: llvm, kbuild-all, linux-wireless, Aloka Dixit 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 -- 0-DAY CI Kernel Test Service https://01.org/lkp ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] mac80211: process additional data in ieee80211_change_beacon() 2022-05-09 17:33 [PATCH v3 0/2] Additional processing in NL80211_CMD_SET_BEACON Aloka Dixit 2022-05-09 17:33 ` [PATCH v3 1/2] nl80211: process additional attributes " Aloka Dixit @ 2022-05-09 17:33 ` Aloka Dixit 1 sibling, 0 replies; 5+ messages in thread From: Aloka Dixit @ 2022-05-09 17:33 UTC (permalink / raw) To: johannes; +Cc: linux-wireless, Aloka Dixit 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 <quic_alokad@quicinc.com> --- v3: No change from v2. 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, ¶ms->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, + ¶ms->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, + ¶ms->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 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-05-09 23:11 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-05-09 17:33 [PATCH v3 0/2] Additional processing in NL80211_CMD_SET_BEACON Aloka Dixit 2022-05-09 17:33 ` [PATCH v3 1/2] nl80211: process additional attributes " Aloka Dixit 2022-05-09 21:05 ` kernel test robot 2022-05-09 23:10 ` kernel test robot 2022-05-09 17:33 ` [PATCH v3 2/2] mac80211: process additional data in ieee80211_change_beacon() Aloka Dixit
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.