Merge 1a0202d2a731c61d7945fb51b715bb1b33ef3693 on remote branch
Change-Id: I562b320f83e9b61405a2572b39332ece6715a6c8
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 7d63f0c..debcefc 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -3008,11 +3008,6 @@
#define CFG_OPTIMIZE_CA_EVENT_ENABLE ( 1 )
#define CFG_OPTIMIZE_CA_EVENT_DEFAULT ( 0 )
-#define CFG_FWR_MEM_DUMP_NAME "gEnableFwrMemDump"
-#define CFG_FWR_MEM_DUMP_MAX ( 1 )
-#define CFG_FWR_MEM_DUMP_MIN ( 0 )
-#define CFG_FWR_MEM_DUMP_DEF ( 1 )
-
#define CFG_ACTIVE_PASSIVE_CHAN_CONV_NAME "gActivePassiveChCon"
#define CFG_ACTIVE_PASSIVE_CHAN_CONV_MIN (0)
#define CFG_ACTIVE_PASSIVE_CHAN_CONV_MAX (1)
@@ -3837,7 +3832,6 @@
v_U32_t linkFailTxCnt;
v_BOOL_t ignorePeerHTopMode;
v_U8_t gOptimizeCAevent;
- v_BOOL_t enableFwrMemDump;
v_U8_t gActivePassiveChCon;
v_U32_t cfgExtScanConcMode;
v_U16_t rps_mask;
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index 0eec5af..0e13ade 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -209,8 +209,6 @@
/* Get Wifi Specific Info */
QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO = 61,
- /* Start Wifi Memory Dump */
- QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP = 63,
/*
* APIs corresponding to the sub commands 65-68 are deprecated.
@@ -491,7 +489,6 @@
/*EXT TDLS*/
QCA_NL80211_VENDOR_SUBCMD_TDLS_STATE_CHANGE_INDEX,
QCA_NL80211_VENDOR_SUBCMD_NAN_INDEX,
- QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP_INDEX,
QCA_NL80211_VENDOR_SUBCMD_MONITOR_RSSI_INDEX,
QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_AP_LOST_INDEX,
@@ -1651,7 +1648,6 @@
* @WIFI_LOGGER_WATCHDOG_TIMER_SUPPORTED - monitor FW health
*/
enum wifi_logger_supported_features {
- WIFI_LOGGER_MEMORY_DUMP_SUPPORTED = (1 << (0)),
WIFI_LOGGER_PER_PACKET_TX_RX_STATUS_SUPPORTED = (1 << (1)),
WIFI_LOGGER_CONNECT_EVENT_SUPPORTED = (1 << (2)),
WIFI_LOGGER_POWER_EVENT_SUPPORTED = (1 << (3)),
@@ -1845,27 +1841,6 @@
int wlan_hdd_send_hang_reason_event(hdd_context_t *hdd_ctx,
unsigned int reason);
-/**
- * enum qca_wlan_vendor_attr_memory_dump - values for memory dump attributes
- * @QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_INVALID - Invalid
- * @QCA_WLAN_VENDOR_ATTR_REQUEST_ID - Indicate request ID
- * @QCA_WLAN_VENDOR_ATTR_MEMDUMP_SIZE - Indicate size of the memory dump
- * @QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_AFTER_LAST - To keep track of the last enum
- * @QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_MAX - max value possible for this type
- *
- * enum values are used for NL attributes for data used by
- * QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP sub command.
- */
-enum qca_wlan_vendor_attr_memory_dump {
- QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_REQUEST_ID = 1,
- QCA_WLAN_VENDOR_ATTR_MEMDUMP_SIZE = 2,
-
- QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_MAX =
- QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_AFTER_LAST - 1,
-};
-
#if defined(CFG80211_DISCONNECTED_V2) || \
(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))
static inline void wlan_hdd_cfg80211_indicate_disconnect(struct net_device *dev,
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index 6ee9a85..aadd9fe 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -1369,7 +1369,7 @@
v_BOOL_t isLinkLayerStatsSet;
#endif
/* DSCP to UP QoS Mapping */
- sme_QosWmmUpType hddWmmDscpToUpMap[WLAN_HDD_MAX_DSCP+1];
+ sme_QosWmmUpType hddWmmDscpToUpMap[WLAN_MAX_DSCP+1];
/* Lock for active sessions while processing deauth/Disassoc */
spinlock_t lock_for_active_session;
tSirFwStatsResult fwStatsRsp;
@@ -1488,8 +1488,6 @@
*/
typedef void (*hdd_fw_mem_dump_req_cb)(void *context);
-int memdump_init(void);
-int memdump_deinit(void);
void wlan_hdd_fw_mem_dump_cb(void *,tAniFwrDumpRsp *);
int wlan_hdd_fw_mem_dump_req(hdd_context_t * pHddCtx);
void wlan_hdd_fw_mem_dump_req_cb(void *context);
@@ -2372,15 +2370,6 @@
int hdd_get_disable_ch_list(hdd_context_t *hdd_ctx, tANI_U8 *buf,
uint32_t buf_len);
-/**
- * hdd_is_memdump_supported() - to check if memdump feature support
- *
- * This function is used to check if memdump feature is supported in
- * the host driver
- *
- * Return: true if supported and false otherwise
- */
-bool hdd_is_memdump_supported(void);
/**
* hdd_is_cli_iface_up() - check if there is any cli iface up
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index fa27193..5258b34 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.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.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -4649,6 +4649,7 @@
flag to 0 */
memset( &dot11WPAIE, 0 , sizeof(tDot11fIEWPA) );
memset( &dot11RSNIE, 0 , sizeof(tDot11fIERSN) );
+ memset( PMKIDCache, 0 , sizeof(tPmkidCacheInfo) * 4);
// Type check
if ( gen_ie[0] == DOT11F_EID_RSN)
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index c6581af..ea2050d 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -3592,13 +3592,6 @@
CFG_OPTIMIZE_CA_EVENT_DISABLE,
CFG_OPTIMIZE_CA_EVENT_ENABLE ),
- REG_VARIABLE(CFG_FWR_MEM_DUMP_NAME, WLAN_PARAM_Integer,
- hdd_config_t,enableFwrMemDump,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_FWR_MEM_DUMP_DEF,
- CFG_FWR_MEM_DUMP_MIN,
- CFG_FWR_MEM_DUMP_MAX),
-
REG_VARIABLE( CFG_ACTIVE_PASSIVE_CHAN_CONV_NAME, WLAN_PARAM_Integer,
hdd_config_t, gActivePassiveChCon,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index c448ba5..0094c7f 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -6365,71 +6365,6 @@
return ret;
}
-
-static int
-__wlan_hdd_cfg80211_get_fw_mem_dump(struct wiphy *wiphy,
- struct wireless_dev *wdev,
- const void *data, int data_len)
-{
- hdd_context_t *pHddCtx = wiphy_priv(wiphy);
- int ret;
- ENTER();
-
- ret = wlan_hdd_validate_context(pHddCtx);
- if (0 != ret)
- {
- return ret;
- }
-
- if( !pHddCtx->cfg_ini->enableFwrMemDump ||
- (FALSE == sme_IsFeatureSupportedByFW(MEMORY_DUMP_SUPPORTED)))
- {
- hddLog(VOS_TRACE_LEVEL_INFO, FL("FW dump Logging not supported"));
- return -EOPNOTSUPP;
- }
- /*call common API for FW mem dump req*/
- ret = wlan_hdd_fw_mem_dump_req(pHddCtx);
-
- if (!ret)
- {
- /*indicate to userspace the status of fw mem dump */
- wlan_indicate_mem_dump_complete(true);
- }
- else
- {
- /*else send failure to userspace */
- wlan_indicate_mem_dump_complete(false);
- }
- EXIT();
- return ret;
-}
-
-/**
- * wlan_hdd_cfg80211_get_fw_mem_dump() - Get FW memory dump
- * @wiphy: pointer to wireless wiphy structure.
- * @wdev: pointer to wireless_dev structure.
- * @data: Pointer to the NL data.
- * @data_len:Length of @data
- *
- * This is called when wlan driver needs to get the firmware memory dump
- * via vendor specific command.
- *
- * Return: 0 on success, error number otherwise.
- */
-
-static int
-wlan_hdd_cfg80211_get_fw_mem_dump(struct wiphy *wiphy,
- struct wireless_dev *wdev,
- const void *data, int data_len)
-{
- int ret = 0;
- vos_ssr_protect(__func__);
- ret = __wlan_hdd_cfg80211_get_fw_mem_dump(wiphy, wdev, data,
- data_len);
- vos_ssr_unprotect(__func__);
- return ret;
-}
-
static const struct
nla_policy
qca_wlan_vendor_wifi_logger_start_policy
@@ -8556,16 +8491,6 @@
features = 0;
- if (hdd_is_memdump_supported())
- features |= WIFI_LOGGER_MEMORY_DUMP_SUPPORTED;
-
- if (hdd_ctx->cfg_ini->wlanLoggingEnable &&
- hdd_ctx->cfg_ini->enableFatalEvent &&
- hdd_ctx->is_fatal_event_log_sup) {
- features |= WIFI_LOGGER_PER_PACKET_TX_RX_STATUS_SUPPORTED;
- features |= WIFI_LOGGER_CONNECT_EVENT_SUPPORTED;
- }
-
reply_skb = cfg80211_vendor_cmd_alloc_reply_skb(wiphy,
sizeof(uint32_t) + NLA_HDRLEN + NLMSG_HDRLEN);
if (!reply_skb) {
@@ -8769,14 +8694,6 @@
},
{
.info.vendor_id = QCA_NL80211_VENDOR_ID,
- .info.subcmd = QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP,
- .flags = WIPHY_VENDOR_CMD_NEED_WDEV |
- WIPHY_VENDOR_CMD_NEED_NETDEV |
- WIPHY_VENDOR_CMD_NEED_RUNNING,
- .doit = wlan_hdd_cfg80211_get_fw_mem_dump
- },
- {
- .info.vendor_id = QCA_NL80211_VENDOR_ID,
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_SETBAND,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
WIPHY_VENDOR_CMD_NEED_NETDEV |
@@ -8971,12 +8888,6 @@
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_TDLS_STATE
},
- [QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP_INDEX] = {
- .vendor_id = QCA_NL80211_VENDOR_ID,
- .subcmd = QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP
- },
-
-
[QCA_NL80211_VENDOR_SUBCMD_NAN_INDEX] = {
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_NAN
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 517f3bc..ccbd87c 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -12466,7 +12466,6 @@
hdd_close_tx_queues(pHddCtx);
wlan_free_fwr_mem_dump_buffer();
- memdump_deinit();
#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
if (pHddCtx->cfg_ini->wlanLoggingEnable)
@@ -13275,11 +13274,10 @@
return;
}
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: Configuring %s %s %s %s Logging",__func__,
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: Configuring %s %s %s Logging",__func__,
pHddCtx->cfg_ini->enableFWLogging?"FW Log,":"",
pHddCtx->cfg_ini->enableContFWLogging ? "Cont FW log,":"",
- pHddCtx->cfg_ini->enableMgmtLogging ? "Mgmt Pkt Log":"",
- pHddCtx->cfg_ini->enableFwrMemDump ? "Fw Mem dump":"");
+ pHddCtx->cfg_ini->enableMgmtLogging ? "Mgmt Pkt Log":"");
if (pHddCtx->cfg_ini->enableFWLogging ||
pHddCtx->cfg_ini->enableContFWLogging)
@@ -13295,11 +13293,6 @@
{
wlanFWLoggingInitParam.enableFlag |= WLAN_BMUHW_TRACE_LOG_EN;
}
- if(pHddCtx->cfg_ini->enableFwrMemDump &&
- (TRUE == sme_IsFeatureSupportedByFW(MEMORY_DUMP_SUPPORTED)))
- {
- wlanFWLoggingInitParam.enableFlag |= WLAN_FW_MEM_DUMP_EN;
- }
if( wlanFWLoggingInitParam.enableFlag == 0 )
{
hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Logging not enabled", __func__);
@@ -14265,9 +14258,7 @@
if (pHddCtx->cfg_ini->wlanLoggingEnable &&
(pHddCtx->cfg_ini->enableFWLogging ||
pHddCtx->cfg_ini->enableMgmtLogging ||
- pHddCtx->cfg_ini->enableContFWLogging ||
- pHddCtx->cfg_ini->enableFwrMemDump )
- )
+ pHddCtx->cfg_ini->enableContFWLogging))
{
hdd_init_frame_logging(pHddCtx);
}
@@ -14396,8 +14387,6 @@
{
hddLog(VOS_TRACE_LEVEL_INFO, FL("Registered IPv4 notifier"));
}
- /*Fw mem dump procfs initialization*/
- memdump_init();
hdd_dp_util_send_rps_ind(pHddCtx);
pHddCtx->is_ap_mode_wow_supported =
@@ -16349,343 +16338,6 @@
return sta_id;
}
-/*FW memory dump feature*/
-/**
- * This structure hold information about the /proc file
- *
- */
-static struct proc_dir_entry *proc_file, *proc_dir;
-
-/**
- * memdump_read() - perform read operation in memory dump proc file
- *
- * @file - handle for the proc file.
- * @buf - pointer to user space buffer.
- * @count - number of bytes to be read.
- * @pos - offset in the from buffer.
- *
- * This function performs read operation for the memory dump proc file.
- *
- * Return: number of bytes read on success, error code otherwise.
- */
-static ssize_t memdump_read(struct file *file, char __user *buf,
- size_t count, loff_t *pos)
-{
- int status;
- hdd_context_t *hdd_ctx = (hdd_context_t *)PDE_DATA(file_inode(file));
- size_t ret_count;
- loff_t bytes_left;
- ENTER();
-
- hddLog(LOG1, FL("Read req for size:%zu pos:%llu"), count, *pos);
- status = wlan_hdd_validate_context(hdd_ctx);
- if (0 != status) {
- return -EINVAL;
- }
-
- if (!wlan_fwr_mem_dump_test_and_set_read_allowed_bit()) {
- hddLog(LOGE, FL("Current mem dump request timed out/failed"));
- return -EINVAL;
- }
-
- /* run fs_read_handler in an atomic context*/
- vos_ssr_protect(__func__);
- ret_count = wlan_fwr_mem_dump_fsread_handler( buf, count, pos, &bytes_left);
- if(bytes_left == 0)
- {
- /*Free the fwr mem dump buffer */
- wlan_free_fwr_mem_dump_buffer();
- wlan_set_fwr_mem_dump_state(FW_MEM_DUMP_IDLE);
- ret_count=0;
- }
- /*if SSR/unload code is waiting for memdump_read to finish,signal it*/
- vos_ssr_unprotect(__func__);
- EXIT();
- return ret_count;
-}
-
-/**
- * struct memdump_fops - file operations for memory dump feature
- * @read - read function for memory dump operation.
- *
- * This structure initialize the file operation handle for memory
- * dump feature
- */
-static const struct file_operations memdump_fops = {
- read: memdump_read
-};
-
-struct fw_mem_dump_priv {
- uint32_t status;
-};
-
-/*
-* wlan_hdd_fw_mem_dump_cb : callback for Fw mem dump request
-* To be passed by HDD to WDA and called upon receiving of response
-* from firmware
-* @fwMemDumpReqContext : memory dump request context
-* @dump_rsp : dump response from HAL
-* Returns none
-*/
-void wlan_hdd_fw_mem_dump_cb(void *context,
- tAniFwrDumpRsp *dump_rsp)
-{
- struct hdd_request *request;
- struct fw_mem_dump_priv *priv;
-
- request = hdd_request_get(context);
- if (!request) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("Obsolete request"));
- return;
- }
-
- ENTER();
-
- priv = hdd_request_priv(request);
- priv->status = dump_rsp->dump_status;
-
- /* report the status to requesting function and free mem.*/
- if (dump_rsp->dump_status != eHAL_STATUS_SUCCESS) {
- hddLog(LOGE, FL("fw dump request declined by fwr"));
- //set the request completion variable
- hdd_request_complete(request);
- //Free the allocated fwr dump
- wlan_free_fwr_mem_dump_buffer();
- wlan_set_fwr_mem_dump_state(FW_MEM_DUMP_IDLE);
- } else {
- hddLog(LOG1, FL("fw dump request accepted by fwr"));
- /* register the HDD callback which will be called by SVC */
- wlan_set_svc_fw_mem_dump_req_cb(
- (void*)wlan_hdd_fw_mem_dump_req_cb,
- context);
- }
-
- hdd_request_put(request);
-
- EXIT();
-}
-
-/**
- * memdump_procfs_remove() - Remove file/dir under procfs for memory dump
- *
- * This function removes file/dir under proc file system that was
- * processing firmware memory dump
- *
- * Return: None
- */
-static void memdump_procfs_remove(void)
-{
- remove_proc_entry(PROCFS_MEMDUMP_NAME, proc_dir);
- hddLog(LOG1 , FL("/proc/%s/%s removed\n"),
- PROCFS_MEMDUMP_DIR, PROCFS_MEMDUMP_NAME);
- remove_proc_entry(PROCFS_MEMDUMP_DIR, NULL);
- hddLog(LOG1 , FL("/proc/%s removed\n"), PROCFS_MEMDUMP_DIR);
-}
-
-/**
- * memdump_procfs_init() - Initialize procfs for memory dump
- *
- * @vos_ctx - Global vos context.
- *
- * This function create file under proc file system to be used later for
- * processing firmware memory dump
- *
- * Return: 0 on success, error code otherwise.
- */
-static int memdump_procfs_init(void *vos_ctx)
-{
- hdd_context_t *hdd_ctx;
-
- hdd_ctx = vos_get_context(VOS_MODULE_ID_HDD, vos_ctx);
- if (!hdd_ctx) {
- hddLog(LOGE , FL("Invalid HDD context"));
- return -EINVAL;
- }
-
- proc_dir = proc_mkdir(PROCFS_MEMDUMP_DIR, NULL);
- if (proc_dir == NULL) {
- remove_proc_entry(PROCFS_MEMDUMP_DIR, NULL);
- hddLog(LOGE , FL("Error: Could not initialize /proc/%s"),
- PROCFS_MEMDUMP_DIR);
- return -ENOMEM;
- }
-
- proc_file = proc_create_data(PROCFS_MEMDUMP_NAME,
- S_IRUSR | S_IWUSR, proc_dir,
- &memdump_fops, hdd_ctx);
- if (proc_file == NULL) {
- remove_proc_entry(PROCFS_MEMDUMP_NAME, proc_dir);
- hddLog(LOGE , FL("Error: Could not initialize /proc/%s"),
- PROCFS_MEMDUMP_NAME);
- return -ENOMEM;
- }
-
- hddLog(LOG1 , FL("/proc/%s/%s created"),
- PROCFS_MEMDUMP_DIR, PROCFS_MEMDUMP_NAME);
-
- return 0;
-}
-
-/**
- * memdump_init() - Initialization function for memory dump feature
- *
- * This function creates proc file for memdump feature and registers
- * HDD callback function with SME.
- *
- * Return - 0 on success, error otherwise
- */
-int memdump_init(void)
-{
- hdd_context_t *hdd_ctx;
- void *vos_ctx;
- int status = 0;
-
- vos_ctx = vos_get_global_context(VOS_MODULE_ID_SYS, NULL);
- if (!vos_ctx) {
- hddLog(LOGE, FL("Invalid VOS context"));
- return -EINVAL;
- }
-
- hdd_ctx = vos_get_context(VOS_MODULE_ID_HDD, vos_ctx);
- if (!hdd_ctx) {
- hddLog(LOGE , FL("Invalid HDD context"));
- return -EINVAL;
- }
-
- status = memdump_procfs_init(vos_ctx);
- if (status) {
- hddLog(LOGE , FL("Failed to create proc file"));
- return status;
- }
-
- return 0;
-}
-
-/**
- * memdump_deinit() - De initialize memdump feature
- *
- * This function removes proc file created for memdump feature.
- *
- * Return: None
- */
-int memdump_deinit(void)
-{
- hdd_context_t *hdd_ctx;
- void *vos_ctx;
-
- vos_ctx = vos_get_global_context(VOS_MODULE_ID_SYS, NULL);
- if (!vos_ctx) {
- hddLog(LOGE, FL("Invalid VOS context"));
- return -EINVAL;
- }
-
- hdd_ctx = vos_get_context(VOS_MODULE_ID_HDD, vos_ctx);
- if(!hdd_ctx) {
- hddLog(LOGE , FL("Invalid HDD context"));
- return -EINVAL;
- }
-
- memdump_procfs_remove();
- return 0;
-}
-
-/**
- * wlan_hdd_fw_mem_dump_req(pHddCtx) - common API(cfg80211/ioctl) for requesting fw mem dump to SME
- * Return: HAL status
- */
-
-int wlan_hdd_fw_mem_dump_req(hdd_context_t * pHddCtx)
-{
- tAniFwrDumpReq fw_mem_dump_req={0};
- eHalStatus status = eHAL_STATUS_FAILURE;
- int ret=0, dump_status;
- void *cookie;
- struct hdd_request *request;
- struct fw_mem_dump_priv *priv;
- static const struct hdd_request_params params = {
- .priv_size = sizeof(*priv),
- .timeout_ms = FW_MEM_DUMP_TIMEOUT_MS,
- };
-
- ENTER();
-
- /*Check whether a dump request is already going on
- *Caution this function will free previously held memory if new dump request is allowed*/
- if (!wlan_fwr_mem_dump_test_and_set_write_allowed_bit()) {
- hddLog(LOGE, FL("Fw memdump already in progress"));
- return -EBUSY;
- }
- //Allocate memory for fw mem dump buffer
- ret = wlan_fwr_mem_dump_buffer_allocation();
- if(ret == -EFAULT)
- {
- hddLog(LOGE, FL("Fwr mem dump not supported by FW"));
- return ret;
- }
- if (0 != ret) {
- hddLog(LOGE, FL("Fwr mem Allocation failed"));
- return -ENOMEM;
- }
-
- request = hdd_request_alloc(¶ms);
- if (!request) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("Request allocation failure"));
- return VOS_STATUS_E_NOMEM;
- }
- cookie = hdd_request_cookie(request);
-
- fw_mem_dump_req.fwMemDumpReqCallback = wlan_hdd_fw_mem_dump_cb;
- fw_mem_dump_req.fwMemDumpReqContext = cookie;
- status = sme_FwMemDumpReq(pHddCtx->hHal, &fw_mem_dump_req);
- if(eHAL_STATUS_SUCCESS != status)
- {
- hddLog(VOS_TRACE_LEVEL_ERROR,
- "%s: fw_mem_dump_req failed ", __func__);
- wlan_free_fwr_mem_dump_buffer();
- ret = -EFAULT;
- goto cleanup;
- }
- /*wait for fw mem dump completion to send event to userspace*/
- ret = hdd_request_wait_for_response(request);
- if (ret)
- {
- hddLog(VOS_TRACE_LEVEL_ERROR,
- "%s: fw_mem_dump_req timeout %d ", __func__,ret);
- ret = -ETIMEDOUT;
- }else {
- priv = hdd_request_priv(request);
- dump_status = priv->status;
- }
-cleanup:
- hdd_request_put(request);
- if(!ret && !dump_status)
- ret = -EFAULT;
-
- EXIT();
- return ret;
-}
-
-/**
- * HDD callback which will be called by SVC to indicate mem dump completion.
- */
-void wlan_hdd_fw_mem_dump_req_cb(void *context)
-{
- struct hdd_request *request;
- struct fw_mem_dump_priv *priv;
-
- request = hdd_request_get(context);
- if (!request) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("Obsolete request"));
- return;
- }
-
- priv = hdd_request_priv(request);
- priv->status = true;
-
- hdd_request_complete(request);
- hdd_request_put(request);
-}
-
void hdd_initialize_adapter_common(hdd_adapter_t *pAdapter)
{
if (NULL == pAdapter)
@@ -18551,14 +18203,6 @@
#endif
-bool hdd_is_memdump_supported(void)
-{
-#ifdef WLAN_FEATURE_MEMDUMP
- return true;
-#endif
- return false;
-}
-
bool hdd_is_cli_iface_up(hdd_context_t *hdd_ctx)
{
hdd_adapter_list_node_t *adapter_node = NULL, *next = NULL;
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index 5d8582f..1bb4e18 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -426,9 +426,6 @@
#ifdef WLAN_FEATURE_PACKET_FILTERING
int wlan_hdd_set_filter(hdd_adapter_t *pAdapter, tpPacketFilterCfg pRequest);
#endif
-static int get_fwr_memdump(struct net_device *,
- struct iw_request_info *,
- union iwreq_data *, char *);
/**---------------------------------------------------------------------------
\brief mem_alloc_copy_from_user_helper -
@@ -7590,13 +7587,6 @@
TRUE, TRUE);
break;
}
- case WE_GET_FW_MEMDUMP:
- {
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
- "FW_MEM_DUMP requested ");
- get_fwr_memdump(dev,info,wrqu,extra);
- break;
- }
default:
{
hddLog(LOGE, "%s: unknown ioctl %d", __func__, sub_cmd);
@@ -10061,32 +10051,6 @@
return ret;
}
-static int get_fwr_memdump(struct net_device *dev,
- struct iw_request_info *info,
- union iwreq_data *wrqu, char *extra)
-{
- hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
- hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
- int ret;
- ENTER();
- // HddCtx sanity
- ret = wlan_hdd_validate_context(pHddCtx);
- if (0 != ret)
- {
- return ret;
- }
- if( !pHddCtx->cfg_ini->enableFwrMemDump ||
- (FALSE == sme_IsFeatureSupportedByFW(MEMORY_DUMP_SUPPORTED)))
- {
- hddLog(VOS_TRACE_LEVEL_INFO, FL("FW dump Logging not supported"));
- return -EINVAL;
- }
- ret = wlan_hdd_fw_mem_dump_req(pHddCtx);
-
- EXIT();
- return ret;
-}
-
static int __iw_set_power_params_priv(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
diff --git a/CORE/HDD/src/wlan_hdd_wmm.c b/CORE/HDD/src/wlan_hdd_wmm.c
index 4652958..9c2ad34 100644
--- a/CORE/HDD/src/wlan_hdd_wmm.c
+++ b/CORE/HDD/src/wlan_hdd_wmm.c
@@ -84,9 +84,6 @@
#define WMM_TRACE_LEVEL_INFO_LOW VOS_TRACE_LEVEL_INFO_LOW
#endif
-
-#define WLAN_HDD_MAX_DSCP 0x3f
-
// DHCP Port number
#define DHCP_SOURCE_PORT 0x4400
#define DHCP_DESTINATION_PORT 0x4300
@@ -1712,7 +1709,7 @@
"%s: Entered", __func__);
// DSCP to User Priority Lookup Table
- for (dscp = 0; dscp <= WLAN_HDD_MAX_DSCP; dscp++)
+ for (dscp = 0; dscp <= WLAN_MAX_DSCP; dscp++)
{
hddWmmDscpToUpMap[dscp] = SME_QOS_WMM_UP_BE;
}
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index 552cdd7..fd792ed 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -779,7 +779,7 @@
#define SIR_HAL_SEND_LOG_DONE_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 272)
#define SIR_HAL_LOST_LINK_PARAMS_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 273)
#define SIR_HAL_SEND_FREQ_RANGE_CONTROL_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 274)
-#define SIR_HAL_FW_MEM_DUMP_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 275)
+/* FW Memory Dump feature is deprecated */
#define SIR_HAL_RSSI_MON_START_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 276)
#define SIR_HAL_RSSI_MON_STOP_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 277)
#define SIR_HAL_HIGH_PRIORITY_DATA_INFO_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 278)
diff --git a/CORE/MAC/src/pe/sch/schBeaconGen.c b/CORE/MAC/src/pe/sch/schBeaconGen.c
index 19553ad..6c0b520 100644
--- a/CORE/MAC/src/pe/sch/schBeaconGen.c
+++ b/CORE/MAC/src/pe/sch/schBeaconGen.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2017, 2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -797,6 +797,13 @@
// copy end of beacon only if length > 0
if (length > 0)
{
+ if (size + pMac->sch.schObject.gSchBeaconOffsetEnd >
+ SCH_MAX_BEACON_SIZE) {
+ PELOGE(schLog(pMac, LOGE,
+ FL("beacon template fail size %d BeaconOffsetEnd %d"),
+ size, pMac->sch.schObject.gSchBeaconOffsetEnd);)
+ return;
+ }
for (i=0; i < pMac->sch.schObject.gSchBeaconOffsetEnd; i++)
pMac->sch.schObject.gSchBeaconFrameBegin[size++] = pMac->sch.schObject.gSchBeaconFrameEnd[i];
}
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index 9fdc24d..c1ec650 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -365,11 +365,10 @@
#endif
#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
-#define CSR_DOT11F_IE_RSN_MAX_LEN (114) /*TODO: duplicate one in dot11f.h */
typedef struct tagCsrEseCckmIe
{
- tANI_U8 cckmIe[CSR_DOT11F_IE_RSN_MAX_LEN];
+ tANI_U8 cckmIe[DOT11F_IE_RSN_MAX_LEN];
tANI_U8 cckmIeLen;
} tCsrEseCckmIe;
#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index 8a7a8e8..77a4dd2 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -1076,6 +1076,7 @@
tANI_U32 deauthRspStatus;
tANI_BOOLEAN pending_roam_disable;
vos_spin_lock_t roam_state_lock;
+ tSirMacAddr spoof_mac_addr;
}tCsrRoamStruct;
diff --git a/CORE/SME/inc/sme_QosApi.h b/CORE/SME/inc/sme_QosApi.h
index 237a64e..93adff2 100644
--- a/CORE/SME/inc/sme_QosApi.h
+++ b/CORE/SME/inc/sme_QosApi.h
@@ -57,6 +57,7 @@
#define SME_QOS_UAPSD_VI 0x02
#define SME_QOS_UAPSD_BE 0x08
#define SME_QOS_UAPSD_BK 0x04
+#define WLAN_MAX_DSCP 0x3f
/*--------------------------------------------------------------------------
Type declarations
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 64500d7..110c606 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.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.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -12899,11 +12899,12 @@
pSession->PmkidCacheInfo[cache_idx].PMKID,
pmksa->PMKID, CSR_RSN_PMKID_SIZE);
- if (pmksa->pmk_len)
+ pSession->PmkidCacheInfo[cache_idx].pmk_len = 0;
+ if (pmksa->pmk_len && pmksa->pmk_len <= CSR_RSN_MAX_PMK_LEN) {
vos_mem_copy(pSession->PmkidCacheInfo[cache_idx].pmk,
pmksa->pmk, pmksa->pmk_len);
-
- pSession->PmkidCacheInfo[cache_idx].pmk_len = pmksa->pmk_len;
+ pSession->PmkidCacheInfo[cache_idx].pmk_len = pmksa->pmk_len;
+ }
/* Increment the CSR local cache index */
if (cache_idx < (CSR_MAX_PMKID_ALLOWED - 1))
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 901e2da..72aecc0 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -6668,6 +6668,8 @@
// spoof mac address
vos_mem_copy((tANI_U8 *)pMsg->macAddr,
(tANI_U8 *)pCommand->u.macAddrSpoofCmd.macAddr, sizeof(tSirMacAddr));
+ vos_mem_copy((tANI_U8 *)pMac->roam.spoof_mac_addr,
+ (tANI_U8 *)pCommand->u.macAddrSpoofCmd.macAddr, sizeof(tSirMacAddr));
pMsg->spoof_mac_oui =
pal_cpu_to_be16(pCommand->u.macAddrSpoofCmd.spoof_mac_oui);
diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c
index 229ed17..338899d 100644
--- a/CORE/SME/src/csr/csrNeighborRoam.c
+++ b/CORE/SME/src/csr/csrNeighborRoam.c
@@ -3814,9 +3814,18 @@
tpCsrChannelInfo currChannelListInfo;
tANI_U8 scanChannelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
int outputNumOfChannels = 0;
-#ifdef FEATURE_WLAN_LFR
tANI_U32 sessionId = pNeighborRoamInfo->csrSessionId;
-#endif
+ VOS_STATUS vos_status;
+
+ vos_status = WLANTL_updateSpoofMacAddr(pMac->roam.gVosContext,
+ (v_MACADDR_t*)&pMac->roam.spoof_mac_addr,
+ (v_MACADDR_t*)&pMac->roam.roamSession[sessionId].selfMacAddr);
+ if (vos_status != VOS_STATUS_SUCCESS)
+ {
+ smsLog(pMac, LOGE, FL("Failed to update MAC Spoof Addr in TL"));
+ return vos_status;
+ }
+
currChannelListInfo = &pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo;
if (
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c
index fa00158..a9bec95 100644
--- a/CORE/SME/src/csr/csrUtil.c
+++ b/CORE/SME/src/csr/csrUtil.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2017, 2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2017, 2019-2020 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -4095,39 +4095,6 @@
return( fRSNMatch );
}
-/**
- * csr_lookup_pmkid_using_ssid() - lookup pmkid using ssid and cache_id
- * @mac: pointer to mac
- * @session: sme session pointer
- * @pmk_cache: pointer to pmk cache
- * @index: index value needs to be seached
- *
- * Return: true if pmkid is found else false
- */
-static bool csr_lookup_pmkid_using_ssid(tpAniSirGlobal mac,
- tCsrRoamSession *session,
- tPmkidCacheInfo *pmk_cache,
- uint32_t *index)
-{
- uint32_t i;
- tPmkidCacheInfo *session_pmk;
-
- for (i = 0; i < session->NumPmkidCache; i++) {
- session_pmk = &session->PmkidCacheInfo[i];
-
- if ((!vos_mem_compare(pmk_cache->ssid, session_pmk->ssid,
- pmk_cache->ssid_len)) &&
- (!vos_mem_compare(session_pmk->cache_id,
- pmk_cache->cache_id, CACHE_ID_LEN))) {
- /* match found */
- *index = i;
- return true;
- }
- }
-
- return false;
-}
-
bool csr_lookup_pmkid_using_bssid(tpAniSirGlobal mac,
tCsrRoamSession *session,
tPmkidCacheInfo *pmk_cache,
@@ -4150,7 +4117,7 @@
}
tANI_BOOLEAN csrLookupPMKID(tpAniSirGlobal pMac, tANI_U32 sessionId,
- tPmkidCacheInfo *pmk_cache)
+ tPmkidCacheInfo *pmk_cache)
{
tANI_BOOLEAN fRC = FALSE, fMatchFound = FALSE;
@@ -4171,22 +4138,20 @@
pSession->fIgnorePMKIDCache = FALSE;
return fRC;
}
-
- if (pmk_cache->ssid_len) {
- /* Try to find based on cache_id and ssid first */
- fMatchFound = csr_lookup_pmkid_using_ssid(pMac, pSession, pmk_cache,
- &Index);
- }
/* If not able to find using cache id or ssid_len is not present */
- if (!fMatchFound)
- fMatchFound = csr_lookup_pmkid_using_bssid(pMac, pSession, pmk_cache,
- &Index);
+ fMatchFound = csr_lookup_pmkid_using_bssid(pMac, pSession, pmk_cache,
+ &Index);
if (!fMatchFound) {
smsLog(pMac, LOG2, "No PMKID Match Found");
return false;
+ }
+ if (pSession->PmkidCacheInfo[Index].pmk_len > CSR_RSN_MAX_PMK_LEN) {
+ smsLog(pMac, LOG2, "PMK length %d is invalid",
+ pSession->PmkidCacheInfo[Index].pmk_len);
+ return false;
}
vos_mem_copy(pmk_cache->PMKID, pSession->PmkidCacheInfo[Index].PMKID, CSR_RSN_PMKID_SIZE);
@@ -4226,6 +4191,8 @@
smsLog(pMac, LOGW, "%s called...", __func__);
+ vos_mem_zero(&pmkid_cache, sizeof(pmkid_cache));
+
do
{
if ( !csrIsProfileRSN( pProfile ) ) break;
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index a62bcec..f531bbb 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -13244,25 +13244,13 @@
for (i = 0; i < SME_QOS_WMM_UP_MAX; i++)
{
for (j = pSession->QosMapSet.dscp_range[i][0];
- j <= pSession->QosMapSet.dscp_range[i][1]; j++)
- {
- if ((pSession->QosMapSet.dscp_range[i][0] == 255) &&
- (pSession->QosMapSet.dscp_range[i][1] == 255))
- {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- "%s: User Priority %d is not used in mapping",
- __func__, i);
- break;
- }
- else
- {
+ j <= pSession->QosMapSet.dscp_range[i][1] &&
+ j <= WLAN_MAX_DSCP; j++)
dscpmapping[j]= i;
- }
- }
}
for (i = 0; i< pSession->QosMapSet.num_dscp_exceptions; i++)
{
- if (pSession->QosMapSet.dscp_exceptions[i][0] != 255)
+ if (pSession->QosMapSet.dscp_exceptions[i][0] <= WLAN_MAX_DSCP)
{
dscpmapping[pSession->QosMapSet.dscp_exceptions[i][0] ] =
pSession->QosMapSet.dscp_exceptions[i][1];
@@ -14387,58 +14375,6 @@
return status;
}
-
-/**
- * sme_FwMemDumpReq() - Send Fwr mem Dump Request
- * @hal: HAL pointer
- *
- * Return: eHalStatus
- */
-
-eHalStatus sme_FwMemDumpReq(tHalHandle hHal, tAniFwrDumpReq *recv_req)
-{
-
- eHalStatus status = eHAL_STATUS_SUCCESS;
- tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
- vos_msg_t msg;
- tAniFwrDumpReq * send_req;
-
- send_req = vos_mem_malloc(sizeof(*send_req));
- if(!send_req) {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Mem allo failed for FW_MEM_DUMP"));
- return eHAL_STATUS_FAILURE;
- }
-
- send_req->fwMemDumpReqCallback = recv_req->fwMemDumpReqCallback;
- send_req->fwMemDumpReqContext = recv_req->fwMemDumpReqContext;
-
- if (eHAL_STATUS_SUCCESS == sme_AcquireGlobalLock(&pMac->sme))
- {
- msg.bodyptr = send_req;
- msg.type = WDA_FW_MEM_DUMP_REQ;
- msg.reserved = 0;
-
- if (VOS_STATUS_SUCCESS != vos_mq_post_message(VOS_MODULE_ID_WDA, &msg))
- {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Not able to post WDA_FW_MEM_DUMP"));
- vos_mem_free(send_req);
- status = eHAL_STATUS_FAILURE;
- }
- sme_ReleaseGlobalLock(&pMac->sme);
- }
- else
- {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Failed to acquire SME Global Lock"));
- vos_mem_free(send_req);
- status = eHAL_STATUS_FAILURE;
- }
-
- return status;
-}
-
eHalStatus sme_set_wificonfig_params(tHalHandle hHal, tSetWifiConfigParams *req)
{
eHalStatus status = eHAL_STATUS_SUCCESS;
diff --git a/CORE/SVC/src/logging/wlan_logging_sock_svc.c b/CORE/SVC/src/logging/wlan_logging_sock_svc.c
index 33aa94c..4ec5b3d 100644
--- a/CORE/SVC/src/logging/wlan_logging_sock_svc.c
+++ b/CORE/SVC/src/logging/wlan_logging_sock_svc.c
@@ -2155,73 +2155,7 @@
gwlan_logging.fw_mem_dump_ctx.fw_dump_max_size = dump_size;
spin_unlock_irqrestore(&gwlan_logging.fw_mem_dump_ctx.fw_mem_dump_lock, flags);
}
-/**
- * wlan_indicate_mem_dump_complete() - When H2H for mem
- * dump finish invoke the handler.
- *
- * This is a handler used to indicate user space about the
- * availability for firmware memory dump via vendor event.
- *
- * Return: None
- */
-void wlan_indicate_mem_dump_complete(bool status )
-{
- hdd_context_t *hdd_ctx;
- void *vos_ctx;
- int ret;
- struct sk_buff *skb = NULL;
- vos_ctx = vos_get_global_context(VOS_MODULE_ID_SYS, NULL);
- if (!vos_ctx) {
- pr_err("Invalid VOS context");
- return;
- }
- hdd_ctx = vos_get_context(VOS_MODULE_ID_HDD, vos_ctx);
- if(!hdd_ctx) {
- pr_err("Invalid HDD context");
- return;
- }
-
- ret = wlan_hdd_validate_context(hdd_ctx);
- if (0 != ret) {
- pr_err("HDD context is not valid");
- return;
- }
-
-
- skb = cfg80211_vendor_cmd_alloc_reply_skb(hdd_ctx->wiphy,
- sizeof(uint32_t) + NLA_HDRLEN + NLMSG_HDRLEN);
-
- if (!skb) {
- pr_err("cfg80211_vendor_event_alloc failed");
- return;
- }
- if(status)
- {
- if (nla_put_u32(skb, QCA_WLAN_VENDOR_ATTR_MEMDUMP_SIZE,
- gwlan_logging.fw_mem_dump_ctx.fw_dump_max_size)) {
- pr_err("nla put fail");
- goto nla_put_failure;
- }
- }
- else
- {
- pr_err("memdump failed.Returning size 0 to user");
- if (nla_put_u32(skb, QCA_WLAN_VENDOR_ATTR_MEMDUMP_SIZE,
- 0)) {
- pr_err("nla put fail");
- goto nla_put_failure;
- }
- }
- /*indicate mem dump complete*/
- cfg80211_vendor_cmd_reply(skb);
- pr_info("Memdump event sent successfully to user space : recvd size %d",(int)(gwlan_logging.fw_mem_dump_ctx.fw_dump_current_loc - gwlan_logging.fw_mem_dump_ctx.fw_dump_start_loc));
- return;
-
-nla_put_failure:
- kfree_skb(skb);
- return;
-}
#ifdef FEATURE_WLAN_DIAG_SUPPORT
/**
* wlan_report_log_completion() - Report bug report completion to userspace
diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h
index c92345e..272d1ac 100644
--- a/CORE/WDA/inc/wlan_qct_wda.h
+++ b/CORE/WDA/inc/wlan_qct_wda.h
@@ -1364,8 +1364,6 @@
#define WDA_HIGH_PRIORITY_DATA_INFO_IND SIR_HAL_HIGH_PRIORITY_DATA_INFO_IND
#endif /* WLAN_FEATURE_EXTSCAN */
-#define WDA_FW_MEM_DUMP_REQ SIR_HAL_FW_MEM_DUMP_REQ
-
#define WDA_WIFI_CONFIG_REQ SIR_HAL_WIFI_CONFIG_PARAMS
#define WDA_ANTENNA_DIVERSITY_SELECTION_REQ SIR_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index a18a1ee..2648d12 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -278,10 +278,6 @@
WDA_ProcessSetRtsCtsHTVhtInd(tWDA_CbContext *pWDA,
tANI_U32 val);
-VOS_STATUS
-WDA_ProcessFwrMemDumpReq(tWDA_CbContext *pWDA,
- tAniFwrDumpReq* pFwrMemDumpReq);
-
VOS_STATUS WDA_ProcessMonStartReq( tWDA_CbContext *pWDA, void* wdaRequest);
VOS_STATUS WDA_ProcessMonStopReq( tWDA_CbContext *pWDA, void* wdaRequest);
VOS_STATUS WDA_ProcessEnableDisableCAEventInd(tWDA_CbContext *pWDA, tANI_U8 val);
@@ -15911,70 +15907,6 @@
return ;
}
-VOS_STATUS WDA_ProcessFwrMemDumpReq(tWDA_CbContext * pWDA,
- tAniFwrDumpReq* pFwrMemDumpReq)
-{
- VOS_STATUS status = VOS_STATUS_SUCCESS;
- WDI_Status wstatus;
- WDI_FwrMemDumpReqType * pWdiFwrMemDumpReq;
- tWDA_ReqParams *pWdaParams ;
-
- VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_INFO,
- "------> %s " ,__func__);
- /* Sanity Check*/
- if(NULL == pFwrMemDumpReq)
- {
- VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "%s: pFwrMemDumpReq received NULL", __func__);
- VOS_ASSERT(0) ;
- return VOS_STATUS_E_FAULT;
- }
-
- pWdiFwrMemDumpReq = (WDI_FwrMemDumpReqType *)vos_mem_malloc(sizeof(WDI_FwrMemDumpReqType));
- if(NULL == pWdiFwrMemDumpReq)
- {
- VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "%s: pWdiFwrMemDumpReq Alloc Failure", __func__);
- VOS_ASSERT(0);
- return VOS_STATUS_E_NOMEM;
- }
-
- pWdaParams = (tWDA_ReqParams *)vos_mem_malloc(sizeof(tWDA_ReqParams)) ;
- if(NULL == pWdaParams)
- {
- VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "%s: pWdaParams Alloc Failure", __func__);
- VOS_ASSERT(0);
- vos_mem_free(pWdiFwrMemDumpReq);
- return VOS_STATUS_E_NOMEM;
- }
-
- /* Store Params pass it to WDI */
- pWdaParams->wdaWdiApiMsgParam = (void *)pWdiFwrMemDumpReq;
- pWdaParams->pWdaContext = pWDA;
- /* Store param pointer as passed in by caller */
- pWdaParams->wdaMsgParam = pFwrMemDumpReq;
-
- wstatus = WDI_FwrMemDumpReq(pWdiFwrMemDumpReq,
- (WDI_FwrMemDumpCb)WDA_FwrMemDumpRespCallback,
- pWdaParams);
-
- if(IS_WDI_STATUS_FAILURE(wstatus))
- {
- VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- FL("Fwr Mem Dump Req failed, free all the memory"));
- status = CONVERT_WDI2VOS_STATUS(wstatus);
- vos_mem_free(pWdaParams->wdaWdiApiMsgParam) ;
- pWdaParams->wdaWdiApiMsgParam = NULL;
- vos_mem_free(pWdaParams->wdaMsgParam);
- pWdaParams->wdaMsgParam = NULL;
- vos_mem_free(pWdaParams);
- }
-
- return status;
-
-}
-
/**
* wda_process_set_allowed_action_frames_ind() - Set allowed action frames to FW
*
@@ -17533,11 +17465,6 @@
WDA_ProcessSetPowerParamsReq(pWDA, (tSirSetPowerParamsReq *)pMsg->bodyptr);
break;
}
- case WDA_FW_MEM_DUMP_REQ:
- {
- WDA_ProcessFwrMemDumpReq(pWDA, (tAniFwrDumpReq*)pMsg->bodyptr);
- break;
- }
#ifdef WLAN_FEATURE_GTK_OFFLOAD
case WDA_GTK_OFFLOAD_REQ:
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index ac424e7..fac44a7 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -12807,6 +12807,7 @@
wpt_uint8 selfStaIdx = 0;
wpt_uint8 ucCurrentBSSSesIdx;
WDI_BSSSessionType* pBSSSes = NULL;
+ wpt_macAddr dst_addr;
/*-------------------------------------------------------------------------
Sanity check
@@ -12850,9 +12851,12 @@
return WDI_STATUS_E_FAILURE;
}
+ vos_mem_copy(dst_addr,
+ &pAddPeriodicTxPtrnParams->wdiAddPeriodicTxPtrnParams.ucPattern[0],
+ VOS_MAC_ADDR_SIZE);
+
ucCurrentBSSSesIdx = WDI_FindAssocSession( pWDICtx,
- pAddPeriodicTxPtrnParams->
- wdiAddPeriodicTxPtrnParams.macAddr,
+ dst_addr,
&pBSSSes);
if ( NULL == pBSSSes )
{
@@ -12860,8 +12864,7 @@
"%s: Association sequence for this BSS does not exist. macBSSID "
MAC_ADDRESS_STR,
__func__,
- MAC_ADDR_ARRAY(pAddPeriodicTxPtrnParams->
- wdiAddPeriodicTxPtrnParams.macAddr));
+ MAC_ADDR_ARRAY(dst_addr));
wpalMemoryFree(pSendBuffer);
return WDI_STATUS_E_NOT_ALLOWED;
}