|
@@ -2055,8 +2055,19 @@ static int hdd_create_acs_timer(hdd_adapter_t *adapter)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static const struct nla_policy
|
|
|
+wlan_hdd_cfg80211_do_acs_policy[QCA_WLAN_VENDOR_ATTR_ACS_MAX+1] = {
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_HW_MODE] = { .type = NLA_U8 },
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_HT_ENABLED] = { .type = NLA_FLAG },
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_HT40_ENABLED] = { .type = NLA_FLAG },
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_VHT_ENABLED] = { .type = NLA_FLAG },
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_CHWIDTH] = { .type = NLA_U16 },
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST] = { .type = NLA_UNSPEC },
|
|
|
+ [QCA_WLAN_VENDOR_ATTR_ACS_FREQ_LIST] = { .type = NLA_UNSPEC },
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
- * __wlan_hdd_cfg80211_do_acs : CFG80211 handler function for DO_ACS Vendor CMD
|
|
|
+ * __wlan_hdd_cfg80211_do_acs(): CFG80211 handler function for DO_ACS Vendor CMD
|
|
|
* @wiphy: Linux wiphy struct pointer
|
|
|
* @wdev: Linux wireless device struct pointer
|
|
|
* @data: ACS information from hostapd
|
|
@@ -2090,17 +2101,6 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
|
|
|
* config shall be set only from start_acs.
|
|
|
*/
|
|
|
|
|
|
- /* nla_policy Policy template. Policy not applied as some attributes are
|
|
|
- * optional and QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST has variable length
|
|
|
- *
|
|
|
- * [QCA_WLAN_VENDOR_ATTR_ACS_HW_MODE] = { .type = NLA_U8 },
|
|
|
- * [QCA_WLAN_VENDOR_ATTR_ACS_HT_ENABLED] = { .type = NLA_FLAG },
|
|
|
- * [QCA_WLAN_VENDOR_ATTR_ACS_HT40_ENABLED] = { .type = NLA_FLAG },
|
|
|
- * [QCA_WLAN_VENDOR_ATTR_ACS_VHT_ENABLED] = { .type = NLA_FLAG },
|
|
|
- * [QCA_WLAN_VENDOR_ATTR_ACS_CHWIDTH] = { .type = NLA_U16 },
|
|
|
- * [QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST] = { .type = NLA_NESTED },
|
|
|
- */
|
|
|
-
|
|
|
ENTER_DEV(ndev);
|
|
|
|
|
|
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
|
|
@@ -2128,7 +2128,7 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
|
|
|
qdf_mem_zero(&sap_config->acs_cfg, sizeof(struct sap_acs_cfg));
|
|
|
|
|
|
status = nla_parse(tb, QCA_WLAN_VENDOR_ATTR_ACS_MAX, data, data_len,
|
|
|
- NULL);
|
|
|
+ wlan_hdd_cfg80211_do_acs_policy);
|
|
|
if (status) {
|
|
|
hdd_err("Invalid ATTR");
|
|
|
goto out;
|