All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Roopni Devanathan <quic_rdevanat@quicinc.com>,
	ath12k@lists.infradead.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	linux-wireless@vger.kernel.org,
	Roopni Devanathan <quic_rdevanat@quicinc.com>
Subject: Re: [PATCH v2 1/5] wifi: cfg80211: Add Support to Set RTS Threshold for each Radio
Date: Sat, 25 Jan 2025 23:40:25 +0800	[thread overview]
Message-ID: <202501252150.mBnKxse3-lkp@intel.com> (raw)
In-Reply-To: <20250124171756.3418663-2-quic_rdevanat@quicinc.com>

Hi Roopni,

kernel test robot noticed the following build warnings:

[auto build test WARNING on e7ef944b3e2c31b608800925e784f67596375770]

url:    https://github.com/intel-lab-lkp/linux/commits/Roopni-Devanathan/wifi-cfg80211-Add-Support-to-Set-RTS-Threshold-for-each-Radio/20250125-012016
base:   e7ef944b3e2c31b608800925e784f67596375770
patch link:    https://lore.kernel.org/r/20250124171756.3418663-2-quic_rdevanat%40quicinc.com
patch subject: [PATCH v2 1/5] wifi: cfg80211: Add Support to Set RTS Threshold for each Radio
config: arm-imx_v6_v7_defconfig (https://download.01.org/0day-ci/archive/20250125/202501252150.mBnKxse3-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 19306351a2c45e266fa11b41eb1362b20b6ca56d)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250125/202501252150.mBnKxse3-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501252150.mBnKxse3-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/wireless/nl80211.c:3603:12: warning: stack frame size (1128) exceeds limit (1024) in 'nl80211_set_wiphy' [-Wframe-larger-than]
    3603 | static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)
         |            ^
   1 warning generated.


vim +/nl80211_set_wiphy +3603 net/wireless/nl80211.c

f444de05d20e27 Johannes Berg          2010-05-05  3602  
556829657397b9 Johannes Berg          2007-09-20 @3603  static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)
556829657397b9 Johannes Berg          2007-09-20  3604  {
a05829a7222e9d Johannes Berg          2021-01-22  3605  	struct cfg80211_registered_device *rdev = NULL;
f444de05d20e27 Johannes Berg          2010-05-05  3606  	struct net_device *netdev = NULL;
f444de05d20e27 Johannes Berg          2010-05-05  3607  	struct wireless_dev *wdev;
a1e567c83f5414 Bill Jordan            2010-09-10  3608  	int result = 0, rem_txq_params = 0;
318884875bdddc Jouni Malinen          2008-10-30  3609  	struct nlattr *nl_txq_params;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3610  	u32 changed;
c23c182175594b Roopni Devanathan      2025-01-24  3611  	u8 retry_short = 0, retry_long = 0, radio_id = NL80211_WIPHY_RADIO_ID_MAX;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3612  	u32 frag_threshold = 0, rts_threshold = 0;
81077e82c3f591 Lukáš Turek            2009-12-21  3613  	u8 coverage_class = 0;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3614  	u32 txq_limit = 0, txq_memory_limit = 0, txq_quantum = 0;
556829657397b9 Johannes Berg          2007-09-20  3615  
a05829a7222e9d Johannes Berg          2021-01-22  3616  	rtnl_lock();
f444de05d20e27 Johannes Berg          2010-05-05  3617  	/*
f444de05d20e27 Johannes Berg          2010-05-05  3618  	 * Try to find the wiphy and netdev. Normally this
f444de05d20e27 Johannes Berg          2010-05-05  3619  	 * function shouldn't need the netdev, but this is
f444de05d20e27 Johannes Berg          2010-05-05  3620  	 * done for backward compatibility -- previously
f444de05d20e27 Johannes Berg          2010-05-05  3621  	 * setting the channel was done per wiphy, but now
f444de05d20e27 Johannes Berg          2010-05-05  3622  	 * it is per netdev. Previous userland like hostapd
f444de05d20e27 Johannes Berg          2010-05-05  3623  	 * also passed a netdev to set_wiphy, so that it is
f444de05d20e27 Johannes Berg          2010-05-05  3624  	 * possible to let that go to the right netdev!
f444de05d20e27 Johannes Berg          2010-05-05  3625  	 */
4bbf4d56583dd5 Johannes Berg          2009-03-24  3626  
f444de05d20e27 Johannes Berg          2010-05-05  3627  	if (info->attrs[NL80211_ATTR_IFINDEX]) {
f444de05d20e27 Johannes Berg          2010-05-05  3628  		int ifindex = nla_get_u32(info->attrs[NL80211_ATTR_IFINDEX]);
f444de05d20e27 Johannes Berg          2010-05-05  3629  
7f2b8562c2ee6e Ying Xue               2014-01-15  3630  		netdev = __dev_get_by_index(genl_info_net(info), ifindex);
5fe231e873729f Johannes Berg          2013-05-08  3631  		if (netdev && netdev->ieee80211_ptr)
f26cbf401be935 Zhao, Gang             2014-04-21  3632  			rdev = wiphy_to_rdev(netdev->ieee80211_ptr->wiphy);
5fe231e873729f Johannes Berg          2013-05-08  3633  		else
f444de05d20e27 Johannes Berg          2010-05-05  3634  			netdev = NULL;
f444de05d20e27 Johannes Berg          2010-05-05  3635  	}
f444de05d20e27 Johannes Berg          2010-05-05  3636  
f444de05d20e27 Johannes Berg          2010-05-05  3637  	if (!netdev) {
878d9ec7367816 Johannes Berg          2012-06-15  3638  		rdev = __cfg80211_rdev_from_attrs(genl_info_net(info),
878d9ec7367816 Johannes Berg          2012-06-15  3639  						  info->attrs);
a05829a7222e9d Johannes Berg          2021-01-22  3640  		if (IS_ERR(rdev)) {
a05829a7222e9d Johannes Berg          2021-01-22  3641  			rtnl_unlock();
4c476991062a0a Johannes Berg          2010-10-04  3642  			return PTR_ERR(rdev);
a05829a7222e9d Johannes Berg          2021-01-22  3643  		}
f444de05d20e27 Johannes Berg          2010-05-05  3644  		wdev = NULL;
f444de05d20e27 Johannes Berg          2010-05-05  3645  		netdev = NULL;
f444de05d20e27 Johannes Berg          2010-05-05  3646  		result = 0;
71fe96bf9db8b1 Johannes Berg          2012-10-24  3647  	} else
f444de05d20e27 Johannes Berg          2010-05-05  3648  		wdev = netdev->ieee80211_ptr;
f444de05d20e27 Johannes Berg          2010-05-05  3649  
f42d22d3f79639 Johannes Berg          2024-11-22  3650  	guard(wiphy)(&rdev->wiphy);
a05829a7222e9d Johannes Berg          2021-01-22  3651  
f444de05d20e27 Johannes Berg          2010-05-05  3652  	/*
f444de05d20e27 Johannes Berg          2010-05-05  3653  	 * end workaround code, by now the rdev is available
f444de05d20e27 Johannes Berg          2010-05-05  3654  	 * and locked, and wdev may or may not be NULL.
f444de05d20e27 Johannes Berg          2010-05-05  3655  	 */
4bbf4d56583dd5 Johannes Berg          2009-03-24  3656  
4bbf4d56583dd5 Johannes Berg          2009-03-24  3657  	if (info->attrs[NL80211_ATTR_WIPHY_NAME])
318884875bdddc Jouni Malinen          2008-10-30  3658  		result = cfg80211_dev_rename(
318884875bdddc Jouni Malinen          2008-10-30  3659  			rdev, nla_data(info->attrs[NL80211_ATTR_WIPHY_NAME]));
0391a45c800780 Johannes Berg          2021-01-28  3660  	rtnl_unlock();
4bbf4d56583dd5 Johannes Berg          2009-03-24  3661  
318884875bdddc Jouni Malinen          2008-10-30  3662  	if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3663  		return result;
318884875bdddc Jouni Malinen          2008-10-30  3664  
c23c182175594b Roopni Devanathan      2025-01-24  3665  	if (info->attrs[NL80211_ATTR_WIPHY_RADIO_INDEX]) {
c23c182175594b Roopni Devanathan      2025-01-24  3666  		/* Radio idx is not expected for non-multi radio wiphy */
c23c182175594b Roopni Devanathan      2025-01-24  3667  		if (!rdev->wiphy.n_radio)
c23c182175594b Roopni Devanathan      2025-01-24  3668  			return -EINVAL;
c23c182175594b Roopni Devanathan      2025-01-24  3669  
c23c182175594b Roopni Devanathan      2025-01-24  3670  		radio_id = nla_get_u8(info->attrs[NL80211_ATTR_WIPHY_RADIO_INDEX]);
c23c182175594b Roopni Devanathan      2025-01-24  3671  		if (radio_id > rdev->wiphy.n_radio)
c23c182175594b Roopni Devanathan      2025-01-24  3672  			return -EINVAL;
c23c182175594b Roopni Devanathan      2025-01-24  3673  	}
c23c182175594b Roopni Devanathan      2025-01-24  3674  
318884875bdddc Jouni Malinen          2008-10-30  3675  	if (info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS]) {
318884875bdddc Jouni Malinen          2008-10-30  3676  		struct ieee80211_txq_params txq_params;
318884875bdddc Jouni Malinen          2008-10-30  3677  		struct nlattr *tb[NL80211_TXQ_ATTR_MAX + 1];
318884875bdddc Jouni Malinen          2008-10-30  3678  
f42d22d3f79639 Johannes Berg          2024-11-22  3679  		if (!rdev->ops->set_txq_params)
f42d22d3f79639 Johannes Berg          2024-11-22  3680  			return -EOPNOTSUPP;
318884875bdddc Jouni Malinen          2008-10-30  3681  
f42d22d3f79639 Johannes Berg          2024-11-22  3682  		if (!netdev)
f42d22d3f79639 Johannes Berg          2024-11-22  3683  			return -EINVAL;
f70f01c2ebbe31 Eliad Peller           2011-09-25  3684  
133a3ff2c93422 Johannes Berg          2011-11-03  3685  		if (netdev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP &&
f42d22d3f79639 Johannes Berg          2024-11-22  3686  		    netdev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO)
f42d22d3f79639 Johannes Berg          2024-11-22  3687  			return -EINVAL;
133a3ff2c93422 Johannes Berg          2011-11-03  3688  
f42d22d3f79639 Johannes Berg          2024-11-22  3689  		if (!netif_running(netdev))
f42d22d3f79639 Johannes Berg          2024-11-22  3690  			return -ENETDOWN;
2b5f8b0b44e17e Johannes Berg          2012-04-02  3691  
318884875bdddc Jouni Malinen          2008-10-30  3692  		nla_for_each_nested(nl_txq_params,
318884875bdddc Jouni Malinen          2008-10-30  3693  				    info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS],
318884875bdddc Jouni Malinen          2008-10-30  3694  				    rem_txq_params) {
8cb081746c031f Johannes Berg          2019-04-26  3695  			result = nla_parse_nested_deprecated(tb,
8cb081746c031f Johannes Berg          2019-04-26  3696  							     NL80211_TXQ_ATTR_MAX,
bfe2c7b1cce4a1 Johannes Berg          2016-10-26  3697  							     nl_txq_params,
fe52145f91fe81 Johannes Berg          2017-04-12  3698  							     txq_params_policy,
fe52145f91fe81 Johannes Berg          2017-04-12  3699  							     info->extack);
ae811e21df28de Johannes Berg          2014-01-24  3700  			if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3701  				return result;
f42d22d3f79639 Johannes Berg          2024-11-22  3702  
318884875bdddc Jouni Malinen          2008-10-30  3703  			result = parse_txq_params(tb, &txq_params);
318884875bdddc Jouni Malinen          2008-10-30  3704  			if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3705  				return result;
318884875bdddc Jouni Malinen          2008-10-30  3706  
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3707  			txq_params.link_id =
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3708  				nl80211_link_id_or_invalid(info->attrs);
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3709  
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3710  			if (txq_params.link_id >= 0 &&
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3711  			    !(netdev->ieee80211_ptr->valid_links &
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3712  			      BIT(txq_params.link_id)))
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3713  				result = -ENOLINK;
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3714  			else if (txq_params.link_id >= 0 &&
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3715  				 !netdev->ieee80211_ptr->valid_links)
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3716  				result = -EINVAL;
9d2bb84d54a403 Shaul Triebitz         2022-08-02  3717  			else
e35e4d28b687d4 Hila Gonen             2012-06-27  3718  				result = rdev_set_txq_params(rdev, netdev,
318884875bdddc Jouni Malinen          2008-10-30  3719  							     &txq_params);
318884875bdddc Jouni Malinen          2008-10-30  3720  			if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3721  				return result;
318884875bdddc Jouni Malinen          2008-10-30  3722  		}
318884875bdddc Jouni Malinen          2008-10-30  3723  	}
556829657397b9 Johannes Berg          2007-09-20  3724  
72bdcf34380917 Jouni Malinen          2008-11-26  3725  	if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) {
69c3f2d30c3576 Ilan Peer              2022-06-12  3726  		int link_id = nl80211_link_id_or_invalid(info->attrs);
69c3f2d30c3576 Ilan Peer              2022-06-12  3727  
4e2f3d67e3afef Johannes Berg          2022-06-20  3728  		if (wdev) {
e16821bcfb364b Jouni Malinen          2014-04-28  3729  			result = __nl80211_set_channel(
e16821bcfb364b Jouni Malinen          2014-04-28  3730  				rdev,
e16821bcfb364b Jouni Malinen          2014-04-28  3731  				nl80211_can_set_dev_channel(wdev) ? netdev : NULL,
69c3f2d30c3576 Ilan Peer              2022-06-12  3732  				info, link_id);
4e2f3d67e3afef Johannes Berg          2022-06-20  3733  		} else {
69c3f2d30c3576 Ilan Peer              2022-06-12  3734  			result = __nl80211_set_channel(rdev, netdev, info, link_id);
4e2f3d67e3afef Johannes Berg          2022-06-20  3735  		}
69c3f2d30c3576 Ilan Peer              2022-06-12  3736  
72bdcf34380917 Jouni Malinen          2008-11-26  3737  		if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3738  			return result;
72bdcf34380917 Jouni Malinen          2008-11-26  3739  	}
72bdcf34380917 Jouni Malinen          2008-11-26  3740  
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3741  	if (info->attrs[NL80211_ATTR_WIPHY_TX_POWER_SETTING]) {
c8442118ad9cd0 Johannes Berg          2012-10-24  3742  		struct wireless_dev *txp_wdev = wdev;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3743  		enum nl80211_tx_power_setting type;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3744  		int idx, mbm = 0;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3745  
c8442118ad9cd0 Johannes Berg          2012-10-24  3746  		if (!(rdev->wiphy.features & NL80211_FEATURE_VIF_TXPOWER))
c8442118ad9cd0 Johannes Berg          2012-10-24  3747  			txp_wdev = NULL;
c8442118ad9cd0 Johannes Berg          2012-10-24  3748  
f42d22d3f79639 Johannes Berg          2024-11-22  3749  		if (!rdev->ops->set_tx_power)
f42d22d3f79639 Johannes Berg          2024-11-22  3750  			return -EOPNOTSUPP;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3751  
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3752  		idx = NL80211_ATTR_WIPHY_TX_POWER_SETTING;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3753  		type = nla_get_u32(info->attrs[idx]);
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3754  
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3755  		if (!info->attrs[NL80211_ATTR_WIPHY_TX_POWER_LEVEL] &&
f42d22d3f79639 Johannes Berg          2024-11-22  3756  		    (type != NL80211_TX_POWER_AUTOMATIC))
f42d22d3f79639 Johannes Berg          2024-11-22  3757  			return -EINVAL;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3758  
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3759  		if (type != NL80211_TX_POWER_AUTOMATIC) {
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3760  			idx = NL80211_ATTR_WIPHY_TX_POWER_LEVEL;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3761  			mbm = nla_get_u32(info->attrs[idx]);
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3762  		}
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3763  
c8442118ad9cd0 Johannes Berg          2012-10-24  3764  		result = rdev_set_tx_power(rdev, txp_wdev, type, mbm);
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3765  		if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3766  			return result;
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3767  	}
98d2ff8bec82fc Juuso Oikarinen        2010-06-23  3768  
afe0cbf87500f0 Bruno Randolf          2010-11-10  3769  	if (info->attrs[NL80211_ATTR_WIPHY_ANTENNA_TX] &&
afe0cbf87500f0 Bruno Randolf          2010-11-10  3770  	    info->attrs[NL80211_ATTR_WIPHY_ANTENNA_RX]) {
afe0cbf87500f0 Bruno Randolf          2010-11-10  3771  		u32 tx_ant, rx_ant;
7a087e7484c9e4 Kirtika Ruchandani     2016-05-29  3772  
7f531e03abf016 Bruno Randolf          2010-12-16  3773  		if ((!rdev->wiphy.available_antennas_tx &&
7f531e03abf016 Bruno Randolf          2010-12-16  3774  		     !rdev->wiphy.available_antennas_rx) ||
f42d22d3f79639 Johannes Berg          2024-11-22  3775  		    !rdev->ops->set_antenna)
f42d22d3f79639 Johannes Berg          2024-11-22  3776  			return -EOPNOTSUPP;
afe0cbf87500f0 Bruno Randolf          2010-11-10  3777  
afe0cbf87500f0 Bruno Randolf          2010-11-10  3778  		tx_ant = nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_ANTENNA_TX]);
afe0cbf87500f0 Bruno Randolf          2010-11-10  3779  		rx_ant = nla_get_u32(info->attrs[NL80211_ATTR_WIPHY_ANTENNA_RX]);
afe0cbf87500f0 Bruno Randolf          2010-11-10  3780  
a7ffac9591a2a0 Bruno Randolf          2010-12-08  3781  		/* reject antenna configurations which don't match the
7f531e03abf016 Bruno Randolf          2010-12-16  3782  		 * available antenna masks, except for the "all" mask */
7f531e03abf016 Bruno Randolf          2010-12-16  3783  		if ((~tx_ant && (tx_ant & ~rdev->wiphy.available_antennas_tx)) ||
f42d22d3f79639 Johannes Berg          2024-11-22  3784  		    (~rx_ant && (rx_ant & ~rdev->wiphy.available_antennas_rx)))
f42d22d3f79639 Johannes Berg          2024-11-22  3785  			return -EINVAL;
a7ffac9591a2a0 Bruno Randolf          2010-12-08  3786  
7f531e03abf016 Bruno Randolf          2010-12-16  3787  		tx_ant = tx_ant & rdev->wiphy.available_antennas_tx;
7f531e03abf016 Bruno Randolf          2010-12-16  3788  		rx_ant = rx_ant & rdev->wiphy.available_antennas_rx;
a7ffac9591a2a0 Bruno Randolf          2010-12-08  3789  
e35e4d28b687d4 Hila Gonen             2012-06-27  3790  		result = rdev_set_antenna(rdev, tx_ant, rx_ant);
afe0cbf87500f0 Bruno Randolf          2010-11-10  3791  		if (result)
f42d22d3f79639 Johannes Berg          2024-11-22  3792  			return result;
afe0cbf87500f0 Bruno Randolf          2010-11-10  3793  	}
afe0cbf87500f0 Bruno Randolf          2010-11-10  3794  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3795  	changed = 0;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3796  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3797  	if (info->attrs[NL80211_ATTR_WIPHY_RETRY_SHORT]) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3798  		retry_short = nla_get_u8(
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3799  			info->attrs[NL80211_ATTR_WIPHY_RETRY_SHORT]);
7f2b8562c2ee6e Ying Xue               2014-01-15  3800  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3801  		changed |= WIPHY_PARAM_RETRY_SHORT;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3802  	}
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3803  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3804  	if (info->attrs[NL80211_ATTR_WIPHY_RETRY_LONG]) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3805  		retry_long = nla_get_u8(
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3806  			info->attrs[NL80211_ATTR_WIPHY_RETRY_LONG]);
7f2b8562c2ee6e Ying Xue               2014-01-15  3807  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3808  		changed |= WIPHY_PARAM_RETRY_LONG;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3809  	}
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3810  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3811  	if (info->attrs[NL80211_ATTR_WIPHY_FRAG_THRESHOLD]) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3812  		frag_threshold = nla_get_u32(
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3813  			info->attrs[NL80211_ATTR_WIPHY_FRAG_THRESHOLD]);
f42d22d3f79639 Johannes Berg          2024-11-22  3814  		if (frag_threshold < 256)
f42d22d3f79639 Johannes Berg          2024-11-22  3815  			return -EINVAL;
7f2b8562c2ee6e Ying Xue               2014-01-15  3816  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3817  		if (frag_threshold != (u32) -1) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3818  			/*
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3819  			 * Fragments (apart from the last one) are required to
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3820  			 * have even length. Make the fragmentation code
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3821  			 * simpler by stripping LSB should someone try to use
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3822  			 * odd threshold value.
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3823  			 */
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3824  			frag_threshold &= ~0x1;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3825  		}
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3826  		changed |= WIPHY_PARAM_FRAG_THRESHOLD;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3827  	}
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3828  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3829  	if (info->attrs[NL80211_ATTR_WIPHY_RTS_THRESHOLD]) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3830  		rts_threshold = nla_get_u32(
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3831  			info->attrs[NL80211_ATTR_WIPHY_RTS_THRESHOLD]);
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3832  		changed |= WIPHY_PARAM_RTS_THRESHOLD;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3833  	}
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3834  
81077e82c3f591 Lukáš Turek            2009-12-21  3835  	if (info->attrs[NL80211_ATTR_WIPHY_COVERAGE_CLASS]) {
f42d22d3f79639 Johannes Berg          2024-11-22  3836  		if (info->attrs[NL80211_ATTR_WIPHY_DYN_ACK])
f42d22d3f79639 Johannes Berg          2024-11-22  3837  			return -EINVAL;
3057dbfdab1b86 Lorenzo Bianconi       2014-09-04  3838  
81077e82c3f591 Lukáš Turek            2009-12-21  3839  		coverage_class = nla_get_u8(
81077e82c3f591 Lukáš Turek            2009-12-21  3840  			info->attrs[NL80211_ATTR_WIPHY_COVERAGE_CLASS]);
81077e82c3f591 Lukáš Turek            2009-12-21  3841  		changed |= WIPHY_PARAM_COVERAGE_CLASS;
81077e82c3f591 Lukáš Turek            2009-12-21  3842  	}
81077e82c3f591 Lukáš Turek            2009-12-21  3843  
3057dbfdab1b86 Lorenzo Bianconi       2014-09-04  3844  	if (info->attrs[NL80211_ATTR_WIPHY_DYN_ACK]) {
f42d22d3f79639 Johannes Berg          2024-11-22  3845  		if (!(rdev->wiphy.features & NL80211_FEATURE_ACKTO_ESTIMATION))
f42d22d3f79639 Johannes Berg          2024-11-22  3846  			return -EOPNOTSUPP;
3057dbfdab1b86 Lorenzo Bianconi       2014-09-04  3847  
3057dbfdab1b86 Lorenzo Bianconi       2014-09-04  3848  		changed |= WIPHY_PARAM_DYN_ACK;
81077e82c3f591 Lukáš Turek            2009-12-21  3849  	}
81077e82c3f591 Lukáš Turek            2009-12-21  3850  
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3851  	if (info->attrs[NL80211_ATTR_TXQ_LIMIT]) {
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3852  		if (!wiphy_ext_feature_isset(&rdev->wiphy,
f42d22d3f79639 Johannes Berg          2024-11-22  3853  					     NL80211_EXT_FEATURE_TXQS))
f42d22d3f79639 Johannes Berg          2024-11-22  3854  			return -EOPNOTSUPP;
f42d22d3f79639 Johannes Berg          2024-11-22  3855  
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3856  		txq_limit = nla_get_u32(
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3857  			info->attrs[NL80211_ATTR_TXQ_LIMIT]);
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3858  		changed |= WIPHY_PARAM_TXQ_LIMIT;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3859  	}
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3860  
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3861  	if (info->attrs[NL80211_ATTR_TXQ_MEMORY_LIMIT]) {
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3862  		if (!wiphy_ext_feature_isset(&rdev->wiphy,
f42d22d3f79639 Johannes Berg          2024-11-22  3863  					     NL80211_EXT_FEATURE_TXQS))
f42d22d3f79639 Johannes Berg          2024-11-22  3864  			return -EOPNOTSUPP;
f42d22d3f79639 Johannes Berg          2024-11-22  3865  
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3866  		txq_memory_limit = nla_get_u32(
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3867  			info->attrs[NL80211_ATTR_TXQ_MEMORY_LIMIT]);
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3868  		changed |= WIPHY_PARAM_TXQ_MEMORY_LIMIT;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3869  	}
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3870  
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3871  	if (info->attrs[NL80211_ATTR_TXQ_QUANTUM]) {
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3872  		if (!wiphy_ext_feature_isset(&rdev->wiphy,
f42d22d3f79639 Johannes Berg          2024-11-22  3873  					     NL80211_EXT_FEATURE_TXQS))
f42d22d3f79639 Johannes Berg          2024-11-22  3874  			return -EOPNOTSUPP;
f42d22d3f79639 Johannes Berg          2024-11-22  3875  
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3876  		txq_quantum = nla_get_u32(
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3877  			info->attrs[NL80211_ATTR_TXQ_QUANTUM]);
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3878  		changed |= WIPHY_PARAM_TXQ_QUANTUM;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3879  	}
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3880  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3881  	if (changed) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3882  		u8 old_retry_short, old_retry_long;
c23c182175594b Roopni Devanathan      2025-01-24  3883  		u32 old_frag_threshold, old_rts_threshold[NL80211_WIPHY_RADIO_ID_MAX];
c23c182175594b Roopni Devanathan      2025-01-24  3884  		u8 old_coverage_class, i;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3885  		u32 old_txq_limit, old_txq_memory_limit, old_txq_quantum;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3886  
f42d22d3f79639 Johannes Berg          2024-11-22  3887  		if (!rdev->ops->set_wiphy_params)
f42d22d3f79639 Johannes Berg          2024-11-22  3888  			return -EOPNOTSUPP;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3889  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3890  		old_retry_short = rdev->wiphy.retry_short;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3891  		old_retry_long = rdev->wiphy.retry_long;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3892  		old_frag_threshold = rdev->wiphy.frag_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3893  		if (radio_id >= rdev->wiphy.n_radio) {
c23c182175594b Roopni Devanathan      2025-01-24  3894  			old_rts_threshold[0] = rdev->wiphy.rts_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3895  			for (i = 0; i < rdev->wiphy.n_radio; i++)
c23c182175594b Roopni Devanathan      2025-01-24  3896  				old_rts_threshold[i] = rdev->wiphy.radio_cfg[i].rts_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3897  		} else {
c23c182175594b Roopni Devanathan      2025-01-24  3898  			old_rts_threshold[radio_id] = rdev->wiphy.radio_cfg[radio_id].rts_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3899  		}
81077e82c3f591 Lukáš Turek            2009-12-21  3900  		old_coverage_class = rdev->wiphy.coverage_class;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3901  		old_txq_limit = rdev->wiphy.txq_limit;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3902  		old_txq_memory_limit = rdev->wiphy.txq_memory_limit;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3903  		old_txq_quantum = rdev->wiphy.txq_quantum;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3904  
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3905  		if (changed & WIPHY_PARAM_RETRY_SHORT)
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3906  			rdev->wiphy.retry_short = retry_short;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3907  		if (changed & WIPHY_PARAM_RETRY_LONG)
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3908  			rdev->wiphy.retry_long = retry_long;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3909  		if (changed & WIPHY_PARAM_FRAG_THRESHOLD)
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3910  			rdev->wiphy.frag_threshold = frag_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3911  		if (changed & WIPHY_PARAM_RTS_THRESHOLD) {
c23c182175594b Roopni Devanathan      2025-01-24  3912  			if (radio_id >= rdev->wiphy.n_radio) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3913  				rdev->wiphy.rts_threshold = rts_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3914  				for (i = 0; i < rdev->wiphy.n_radio; i++)
c23c182175594b Roopni Devanathan      2025-01-24  3915  					rdev->wiphy.radio_cfg[i].rts_threshold = rts_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3916  			} else {
c23c182175594b Roopni Devanathan      2025-01-24  3917  				rdev->wiphy.radio_cfg[radio_id].rts_threshold =	rts_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3918  			}
c23c182175594b Roopni Devanathan      2025-01-24  3919  		}
81077e82c3f591 Lukáš Turek            2009-12-21  3920  		if (changed & WIPHY_PARAM_COVERAGE_CLASS)
81077e82c3f591 Lukáš Turek            2009-12-21  3921  			rdev->wiphy.coverage_class = coverage_class;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3922  		if (changed & WIPHY_PARAM_TXQ_LIMIT)
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3923  			rdev->wiphy.txq_limit = txq_limit;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3924  		if (changed & WIPHY_PARAM_TXQ_MEMORY_LIMIT)
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3925  			rdev->wiphy.txq_memory_limit = txq_memory_limit;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3926  		if (changed & WIPHY_PARAM_TXQ_QUANTUM)
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3927  			rdev->wiphy.txq_quantum = txq_quantum;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3928  
c23c182175594b Roopni Devanathan      2025-01-24  3929  		result = rdev_set_wiphy_params(rdev, radio_id, changed);
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3930  		if (result) {
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3931  			rdev->wiphy.retry_short = old_retry_short;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3932  			rdev->wiphy.retry_long = old_retry_long;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3933  			rdev->wiphy.frag_threshold = old_frag_threshold;
c23c182175594b Roopni Devanathan      2025-01-24  3934  			if (radio_id >= rdev->wiphy.n_radio) {
c23c182175594b Roopni Devanathan      2025-01-24  3935  				rdev->wiphy.rts_threshold = old_rts_threshold[0];
c23c182175594b Roopni Devanathan      2025-01-24  3936  				for (i = 0; i < rdev->wiphy.n_radio; i++)
c23c182175594b Roopni Devanathan      2025-01-24  3937  					rdev->wiphy.radio_cfg[i].rts_threshold = old_rts_threshold[i];
c23c182175594b Roopni Devanathan      2025-01-24  3938  			} else {
c23c182175594b Roopni Devanathan      2025-01-24  3939  				rdev->wiphy.radio_cfg[radio_id].rts_threshold = old_rts_threshold[radio_id];
c23c182175594b Roopni Devanathan      2025-01-24  3940  			}
81077e82c3f591 Lukáš Turek            2009-12-21  3941  			rdev->wiphy.coverage_class = old_coverage_class;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3942  			rdev->wiphy.txq_limit = old_txq_limit;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3943  			rdev->wiphy.txq_memory_limit = old_txq_memory_limit;
52539ca89f365d Toke Høiland-Jørgensen 2018-05-08  3944  			rdev->wiphy.txq_quantum = old_txq_quantum;
f42d22d3f79639 Johannes Berg          2024-11-22  3945  			return result;
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3946  		}
b9a5f8cab751d3 Jouni Malinen          2009-04-20  3947  	}
a05829a7222e9d Johannes Berg          2021-01-22  3948  
f42d22d3f79639 Johannes Berg          2024-11-22  3949  	return 0;
556829657397b9 Johannes Berg          2007-09-20  3950  }
556829657397b9 Johannes Berg          2007-09-20  3951  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


  reply	other threads:[~2025-01-25 15:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-24 17:17 [PATCH v2 0/5] wifi: cfg80211/mac80211: Set/get wiphy parameters on per-radio basis Roopni Devanathan
2025-01-24 17:17 ` [PATCH v2 1/5] wifi: cfg80211: Add Support to Set RTS Threshold for each Radio Roopni Devanathan
2025-01-25 15:40   ` kernel test robot [this message]
2025-01-24 17:17 ` [PATCH v2 2/5] wifi: cfg80211: Report per-radio RTS threshold to userspace Roopni Devanathan
2025-01-24 17:17 ` [PATCH v2 3/5] wifi: mac80211: Set RTS threshold on per-radio basis Roopni Devanathan
2025-01-25 11:49   ` kernel test robot
2025-01-24 17:17 ` [PATCH v2 4/5] wifi: cfg80211: set tx power per radio in a wiphy Roopni Devanathan
2025-01-24 17:17 ` [PATCH v2 5/5] wifi: mac80211: " Roopni Devanathan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202501252150.mBnKxse3-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ath12k@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=quic_rdevanat@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.