diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 81823b4a9fd3..049538bb0334 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -5913,6 +5913,26 @@ static int hdd_config_ant_div_ena(struct hdd_adapter *adapter, return errno; } +static int hdd_config_ignore_assoc_disallowed(struct hdd_adapter *adapter, + const struct nlattr *attr) +{ + struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); + uint8_t ignore_assoc_disallowed; + + ignore_assoc_disallowed = nla_get_u8(attr); + hdd_debug("%u", ignore_assoc_disallowed); + if ((ignore_assoc_disallowed < QCA_IGNORE_ASSOC_DISALLOWED_DISABLE) || + (ignore_assoc_disallowed > QCA_IGNORE_ASSOC_DISALLOWED_ENABLE)) + return -EINVAL; + + sme_update_session_param(hdd_ctx->mac_handle, + adapter->session_id, + SIR_PARAM_IGNORE_ASSOC_DISALLOWED, + ignore_assoc_disallowed); + + return 0; +} + /** * typedef independent_setter_fn - independent attribute handler * @adapter: The adapter being configured @@ -5973,6 +5993,8 @@ static const struct independent_setters independent_setters[] = { hdd_config_channel_avoidance_ind}, {QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_ENA, hdd_config_ant_div_ena}, + {QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED, + hdd_config_ignore_assoc_disallowed}, }; /** @@ -6218,26 +6240,6 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy, } } - if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED]) { - uint8_t ignore_assoc_disallowed; - - ignore_assoc_disallowed - = nla_get_u8(tb[ - QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED]); - hdd_debug("Set ignore_assoc_disallowed value - %d", - ignore_assoc_disallowed); - if ((ignore_assoc_disallowed < - QCA_IGNORE_ASSOC_DISALLOWED_DISABLE) || - (ignore_assoc_disallowed > - QCA_IGNORE_ASSOC_DISALLOWED_ENABLE)) - return -EPERM; - - sme_update_session_param(mac_handle, - adapter->session_id, - SIR_PARAM_IGNORE_ASSOC_DISALLOWED, - ignore_assoc_disallowed); - } - #define ANT_DIV_SET_PERIOD(probe_period, stay_period) \ ((1<<26)|((probe_period&0x1fff)<<13)|(stay_period&0x1fff))