diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index d211fc606935..05c298b662ce 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -5929,13 +5929,10 @@ static int wlan_hdd_cfg80211_keymgmt_set_key(struct wiphy *wiphy, #endif const struct nla_policy qca_wlan_vendor_get_wifi_info_policy[ - QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_MAX + 1] = { - [QCA_WLAN_VENDOR_ATTR_WIFI_INFO_DRIVER_VERSION] = { - .type = NLA_U8 }, - [QCA_WLAN_VENDOR_ATTR_WIFI_INFO_FIRMWARE_VERSION] = { - .type = NLA_U8 }, - [QCA_WLAN_VENDOR_ATTR_WIFI_INFO_RADIO_INDEX] = { - .type = NLA_U32 }, + QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_MAX + 1] = { + [QCA_WLAN_VENDOR_ATTR_WIFI_INFO_DRIVER_VERSION] = {.type = NLA_U8 }, + [QCA_WLAN_VENDOR_ATTR_WIFI_INFO_FIRMWARE_VERSION] = {.type = NLA_U8 }, + [QCA_WLAN_VENDOR_ATTR_WIFI_INFO_RADIO_INDEX] = {.type = NLA_U32 }, }; /** @@ -6535,11 +6532,42 @@ nla_put_failure: QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_PEER_MAC #define RX_BLOCKSIZE_WINLIMIT \ QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_WINLIMIT + const struct nla_policy wlan_hdd_wifi_config_policy[ QCA_WLAN_VENDOR_ATTR_CONFIG_MAX + 1] = { + [QCA_WLAN_VENDOR_ATTR_CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_DEFAULT_IES] = {.type = NLA_BINARY}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_COMMAND] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_VALUE] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_DATA] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_LENGTH] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_FLAGS] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_IFINDEX] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_VOICE] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_VIDEO] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_BESTEFFORT] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_BACKGROUND] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_PEER_MAC] = { + .type = NLA_UNSPEC, + .len = QDF_MAC_ADDR_SIZE}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_WINLIMIT] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_BEACON_MISS_THRESHOLD_24] = { + .type = NLA_U8}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_BEACON_MISS_THRESHOLD_5] = { + .type = NLA_U8}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_TOTAL_BEACON_MISS_COUNT] = { + .type = NLA_U8}, + [QCA_WLAN_VENDOR_ATTR_CONFIG_BEACON_REPORT_FAIL] = {.type = NLA_U8}, + [QCA_WLAN_VENDOR_ATTR_CONF_TX_RATE] = {.type = NLA_U16}, [QCA_WLAN_VENDOR_ATTR_CONFIG_MODULATED_DTIM] = {.type = NLA_U32 }, [QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED] = { - .type = NLA_U8 }, + .type = NLA_U8}, [QCA_WLAN_VENDOR_ATTR_CONFIG_DISABLE_FILS] = {.type = NLA_U8 }, [QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR] = {.type = NLA_U16 }, [QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME] = {.type = NLA_U32 }, @@ -9434,6 +9462,25 @@ static int hdd_unmap_req_id_to_pattern_id(struct hdd_context *hdd_ctx, #define PARAM_PROTO_TYPE \ QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_ETHER_PROTO_TYPE +const struct nla_policy offloaded_packet_policy[ + QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_MAX + 1] = { + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_REQUEST_ID] = {.type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SENDING_CONTROL] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SRC_MAC_ADDR] = { + .type = NLA_BINARY, + .len = QDF_MAC_ADDR_SIZE }, + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SRC_MAC_ADDR] = { + .type = NLA_BINARY, + .len = QDF_MAC_ADDR_SIZE }, + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_DST_MAC_ADDR] = { + .type = NLA_U32}, + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_IP_PACKET_DATA] = { + .type = NLA_BINARY}, + [QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_ETHER_PROTO_TYPE] = { + .type = NLA_U16}, +}; + /** * wlan_hdd_add_tx_ptrn() - add tx pattern * @adapter: adapter pointer @@ -9674,16 +9721,6 @@ __wlan_hdd_cfg80211_offloaded_packets(struct wiphy *wiphy, struct nlattr *tb[PARAM_MAX + 1]; uint8_t control; int ret; - static const struct nla_policy policy[PARAM_MAX + 1] = { - [PARAM_REQUEST_ID] = { .type = NLA_U32 }, - [PARAM_CONTROL] = { .type = NLA_U32 }, - [PARAM_SRC_MAC_ADDR] = { .type = NLA_BINARY, - .len = QDF_MAC_ADDR_SIZE }, - [PARAM_DST_MAC_ADDR] = { .type = NLA_BINARY, - .len = QDF_MAC_ADDR_SIZE }, - [PARAM_PERIOD] = { .type = NLA_U32 }, - [PARAM_PROTO_TYPE] = {.type = NLA_U16}, - }; hdd_enter_dev(dev); @@ -9701,7 +9738,8 @@ __wlan_hdd_cfg80211_offloaded_packets(struct wiphy *wiphy, return -ENOTSUPP; } - if (wlan_cfg80211_nla_parse(tb, PARAM_MAX, data, data_len, policy)) { + if (wlan_cfg80211_nla_parse(tb, PARAM_MAX, data, data_len, + offloaded_packet_policy)) { hdd_err("Invalid ATTR"); return -EINVAL; } @@ -14512,7 +14550,9 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = { .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV | WIPHY_VENDOR_CMD_NEED_RUNNING, - .doit = wlan_hdd_cfg80211_wifi_configuration_get + .doit = wlan_hdd_cfg80211_wifi_configuration_get, + vendor_command_policy(wlan_hdd_wifi_config_policy, + QCA_WLAN_VENDOR_ATTR_CONFIG_MAX) }, FEATURE_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION @@ -14581,7 +14621,8 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = { .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV | WIPHY_VENDOR_CMD_NEED_RUNNING, - .doit = wlan_hdd_cfg80211_get_tdls_capabilities + .doit = wlan_hdd_cfg80211_get_tdls_capabilities, + vendor_command_policy(VENDOR_CMD_RAW_DATA, 0) }, #endif #ifdef WLAN_FEATURE_OFFLOAD_PACKETS @@ -14591,7 +14632,9 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = { .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV | WIPHY_VENDOR_CMD_NEED_RUNNING, - .doit = wlan_hdd_cfg80211_offloaded_packets + .doit = wlan_hdd_cfg80211_offloaded_packets, + vendor_command_policy(offloaded_packet_policy, + QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_MAX) }, #endif FEATURE_RSSI_MONITOR_VENDOR_COMMANDS diff --git a/core/hdd/src/wlan_hdd_concurrency_matrix.c b/core/hdd/src/wlan_hdd_concurrency_matrix.c index ea091bcb78d1..28caec991eac 100644 --- a/core/hdd/src/wlan_hdd_concurrency_matrix.c +++ b/core/hdd/src/wlan_hdd_concurrency_matrix.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -36,7 +36,8 @@ QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_MAX #define MATRIX_CONFIG_PARAM_SET_SIZE_MAX \ QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_CONFIG_PARAM_SET_SIZE_MAX -static const struct nla_policy + +const struct nla_policy wlan_hdd_get_concurrency_matrix_policy[MAX_CONCURRENT_MATRIX + 1] = { [MATRIX_CONFIG_PARAM_SET_SIZE_MAX] = {.type = NLA_U32}, }; diff --git a/core/hdd/src/wlan_hdd_concurrency_matrix.h b/core/hdd/src/wlan_hdd_concurrency_matrix.h index 1bdc6f75fd4e..a8ec3db4bda6 100644 --- a/core/hdd/src/wlan_hdd_concurrency_matrix.h +++ b/core/hdd/src/wlan_hdd_concurrency_matrix.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2018,2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -26,6 +26,11 @@ */ #ifdef FEATURE_CONCURRENCY_MATRIX + +extern const struct nla_policy +wlan_hdd_get_concurrency_matrix_policy[ + QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_MAX + 1]; + /** * wlan_hdd_cfg80211_get_concurrency_matrix() - get concurrency matrix * @wiphy: pointer to wireless wiphy structure. @@ -47,7 +52,9 @@ int wlan_hdd_cfg80211_get_concurrency_matrix(struct wiphy *wiphy, .info.vendor_id = QCA_NL80211_VENDOR_ID, \ .info.subcmd = QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX,\ .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,\ - .doit = wlan_hdd_cfg80211_get_concurrency_matrix \ + .doit = wlan_hdd_cfg80211_get_concurrency_matrix, \ + vendor_command_policy(wlan_hdd_get_concurrency_matrix_policy, \ + QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_MAX)\ }, #else /* FEATURE_CONCURRENCY_MATRIX */ #define FEATURE_CONCURRENCY_MATRIX_VENDOR_COMMANDS diff --git a/core/hdd/src/wlan_hdd_rssi_monitor.c b/core/hdd/src/wlan_hdd_rssi_monitor.c index 5fa6511ebb16..fe7efbe7eb60 100644 --- a/core/hdd/src/wlan_hdd_rssi_monitor.c +++ b/core/hdd/src/wlan_hdd_rssi_monitor.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -42,6 +42,14 @@ #define PARAM_MIN_RSSI QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MIN_RSSI #define PARAM_MAX_RSSI QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX_RSSI +const struct nla_policy moitor_rssi_policy[ + QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX + 1] = { + [QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_REQUEST_ID] = { .type = NLA_U32 }, + [QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CONTROL] = { .type = NLA_U32 }, + [QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MIN_RSSI] = { .type = NLA_S8 }, + [QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX_RSSI] = { .type = NLA_S8 }, +}; + /** * __wlan_hdd_cfg80211_monitor_rssi() - monitor rssi * @wiphy: Pointer to wireless phy @@ -66,12 +74,6 @@ __wlan_hdd_cfg80211_monitor_rssi(struct wiphy *wiphy, int ret; uint32_t control; mac_handle_t mac_handle; - static const struct nla_policy policy[PARAM_MAX + 1] = { - [PARAM_REQUEST_ID] = { .type = NLA_U32 }, - [PARAM_CONTROL] = { .type = NLA_U32 }, - [PARAM_MIN_RSSI] = { .type = NLA_S8 }, - [PARAM_MAX_RSSI] = { .type = NLA_S8 }, - }; hdd_enter_dev(dev); @@ -89,7 +91,8 @@ __wlan_hdd_cfg80211_monitor_rssi(struct wiphy *wiphy, return -ENOTSUPP; } - if (wlan_cfg80211_nla_parse(tb, PARAM_MAX, data, data_len, policy)) { + if (wlan_cfg80211_nla_parse(tb, PARAM_MAX, data, data_len, + moitor_rssi_policy)) { hdd_err("Invalid ATTR"); return -EINVAL; } diff --git a/core/hdd/src/wlan_hdd_rssi_monitor.h b/core/hdd/src/wlan_hdd_rssi_monitor.h index ac621c477bf4..4350a5e4db23 100644 --- a/core/hdd/src/wlan_hdd_rssi_monitor.h +++ b/core/hdd/src/wlan_hdd_rssi_monitor.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2018,2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -26,6 +26,11 @@ */ #ifdef FEATURE_RSSI_MONITOR + +/* QCA_NL80211_VENDOR_SUBCMD_MONITOR_RSSI policy */ +extern const struct nla_policy moitor_rssi_policy[ + QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX + 1]; + /** * wlan_hdd_cfg80211_monitor_rssi() - SSR wrapper to rssi monitoring * @wiphy: wiphy structure pointer