mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
wifi: cfg80211: disallow SMPS in AP mode
In practice, userspace hasn't been able to set this for many years, and mac80211 has already rejected it (which is now no longer needed), so reject SMPS mode (other than "OFF" to be a bit more compatible) in AP mode. Also remove the parameter from the AP settings struct. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20241007144851.fe1fc46484cf.I8676fb52b818a4bedeb9c25b901e1396277ffc0b@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
074a8b54da
commit
62262dd00c
@ -257,7 +257,7 @@ int qtnf_cmd_send_start_ap(struct qtnf_vif *vif,
|
||||
cmd->beacon_interval = cpu_to_le16(s->beacon_interval);
|
||||
cmd->hidden_ssid = qlink_hidden_ssid_nl2q(s->hidden_ssid);
|
||||
cmd->inactivity_timeout = cpu_to_le16(s->inactivity_timeout);
|
||||
cmd->smps_mode = s->smps_mode;
|
||||
cmd->smps_mode = NL80211_SMPS_OFF;
|
||||
cmd->p2p_ctwindow = s->p2p_ctwindow;
|
||||
cmd->p2p_opp_ps = s->p2p_opp_ps;
|
||||
cmd->pbss = s->pbss;
|
||||
|
@ -1460,7 +1460,6 @@ struct cfg80211_unsol_bcast_probe_resp {
|
||||
* @crypto: crypto settings
|
||||
* @privacy: the BSS uses privacy
|
||||
* @auth_type: Authentication type (algorithm)
|
||||
* @smps_mode: SMPS mode
|
||||
* @inactivity_timeout: time in seconds to determine station's inactivity.
|
||||
* @p2p_ctwindow: P2P CT Window
|
||||
* @p2p_opp_ps: P2P opportunistic PS
|
||||
@ -1498,7 +1497,6 @@ struct cfg80211_ap_settings {
|
||||
struct cfg80211_crypto_settings crypto;
|
||||
bool privacy;
|
||||
enum nl80211_auth_type auth_type;
|
||||
enum nl80211_smps_mode smps_mode;
|
||||
int inactivity_timeout;
|
||||
u8 p2p_ctwindow;
|
||||
bool p2p_opp_ps;
|
||||
|
@ -1312,9 +1312,6 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
|
||||
if (old)
|
||||
return -EALREADY;
|
||||
|
||||
if (params->smps_mode != NL80211_SMPS_OFF)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
link->smps_mode = IEEE80211_SMPS_OFF;
|
||||
|
||||
link->needed_rx_chains = sdata->local->rx_chains;
|
||||
|
@ -6227,33 +6227,9 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (info->attrs[NL80211_ATTR_SMPS_MODE]) {
|
||||
params->smps_mode =
|
||||
nla_get_u8(info->attrs[NL80211_ATTR_SMPS_MODE]);
|
||||
switch (params->smps_mode) {
|
||||
case NL80211_SMPS_OFF:
|
||||
break;
|
||||
case NL80211_SMPS_STATIC:
|
||||
if (!(rdev->wiphy.features &
|
||||
NL80211_FEATURE_STATIC_SMPS)) {
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
break;
|
||||
case NL80211_SMPS_DYNAMIC:
|
||||
if (!(rdev->wiphy.features &
|
||||
NL80211_FEATURE_DYNAMIC_SMPS)) {
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
params->smps_mode = NL80211_SMPS_OFF;
|
||||
}
|
||||
if (info->attrs[NL80211_ATTR_SMPS_MODE] &&
|
||||
nla_get_u8(info->attrs[NL80211_ATTR_SMPS_MODE]) != NL80211_SMPS_OFF)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
params->pbss = nla_get_flag(info->attrs[NL80211_ATTR_PBSS]);
|
||||
if (params->pbss && !rdev->wiphy.bands[NL80211_BAND_60GHZ]) {
|
||||
|
Loading…
Reference in New Issue
Block a user