diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h index 6ca99ebe73fb..dcc0c020078c 100644 --- a/core/wma/inc/wma_internal.h +++ b/core/wma/inc/wma_internal.h @@ -794,10 +794,15 @@ int wma_mcc_vdev_tx_pause_evt_handler(void *handle, uint8_t *event, #if defined(CONFIG_HL_SUPPORT) && defined(QCA_BAD_PEER_TX_FLOW_CL) QDF_STATUS wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma, struct t_bad_peer_txtcl_config *config); - +#else +static inline QDF_STATUS +wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma, + struct t_bad_peer_txtcl_config *config) +{ + return QDF_STATUS_E_FAILURE; +} #endif - QDF_STATUS wma_process_init_thermal_info(tp_wma_handle wma, t_thermal_mgmt *pThermalParams); diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c index a0ef65830b2b..e1d7c5e79b96 100644 --- a/core/wma/src/wma_data.c +++ b/core/wma/src/wma_data.c @@ -1777,13 +1777,6 @@ QDF_STATUS wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma, return wma_set_peer_rate_report_condition(wma, config); } -#else - -QDF_STATUS wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma, - struct t_bad_peer_txtcl_config *config) -{ - return QDF_STATUS_E_FAILURE; -} #endif /* defined(CONFIG_HL_SUPPORT) && defined(QCA_BAD_PEER_TX_FLOW_CL) */ diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index fbddc7dcffa2..fc60c85cf9f9 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -5657,10 +5657,9 @@ QDF_STATUS wma_process_add_periodic_tx_ptrn_ind(WMA_HANDLE handle, pAddPeriodicTxPtrnParams) { tp_wma_handle wma_handle = (tp_wma_handle) handle; - struct periodic_tx_pattern params; + struct periodic_tx_pattern *params_ptr; uint8_t vdev_id; - - qdf_mem_set(¶ms, sizeof(struct periodic_tx_pattern), 0); + QDF_STATUS status; if (!wma_handle || !wma_handle->wmi_handle) { WMA_LOGE("%s: WMA is closed, can not issue fw add pattern cmd", @@ -5668,6 +5667,15 @@ QDF_STATUS wma_process_add_periodic_tx_ptrn_ind(WMA_HANDLE handle, return QDF_STATUS_E_INVAL; } + params_ptr = qdf_mem_malloc(sizeof(*params_ptr)); + + if (!params_ptr) { + WMA_LOGE( + "%s: unable to allocate memory for periodic_tx_pattern", + __func__); + return QDF_STATUS_E_NOMEM; + } + if (!wma_find_vdev_by_addr(wma_handle, pAddPeriodicTxPtrnParams->mac_address.bytes, &vdev_id)) { @@ -5676,17 +5684,22 @@ QDF_STATUS wma_process_add_periodic_tx_ptrn_ind(WMA_HANDLE handle, return QDF_STATUS_E_INVAL; } - params.ucPtrnId = pAddPeriodicTxPtrnParams->ucPtrnId; - params.ucPtrnSize = pAddPeriodicTxPtrnParams->ucPtrnSize; - params.usPtrnIntervalMs = pAddPeriodicTxPtrnParams->usPtrnIntervalMs; - qdf_mem_copy(¶ms.mac_address, + params_ptr->ucPtrnId = pAddPeriodicTxPtrnParams->ucPtrnId; + params_ptr->ucPtrnSize = pAddPeriodicTxPtrnParams->ucPtrnSize; + params_ptr->usPtrnIntervalMs = + pAddPeriodicTxPtrnParams->usPtrnIntervalMs; + qdf_mem_copy(¶ms_ptr->mac_address, &pAddPeriodicTxPtrnParams->mac_address, sizeof(struct qdf_mac_addr)); - qdf_mem_copy(params.ucPattern, pAddPeriodicTxPtrnParams->ucPattern, - params.ucPtrnSize); + qdf_mem_copy(params_ptr->ucPattern, + pAddPeriodicTxPtrnParams->ucPattern, + params_ptr->ucPtrnSize); - return wmi_unified_process_add_periodic_tx_ptrn_cmd( - wma_handle->wmi_handle, ¶ms, vdev_id); + status = wmi_unified_process_add_periodic_tx_ptrn_cmd( + wma_handle->wmi_handle, params_ptr, vdev_id); + + qdf_mem_free(params_ptr); + return status; } /** diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index aa868152d1f5..b17052d7c5da 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -5085,8 +5085,9 @@ QDF_STATUS wma_extscan_start_change_monitor(tp_wma_handle wma, tSirExtScanSetSigChangeReqParams * psigchange) { - struct extscan_set_sig_changereq_params params = {0}; int i = 0; + QDF_STATUS status; + struct extscan_set_sig_changereq_params *params_ptr; if (!wma || !wma->wmi_handle) { WMA_LOGE("%s: WMA is closed,can not issue extscan cmd", @@ -5094,21 +5095,34 @@ QDF_STATUS wma_extscan_start_change_monitor(tp_wma_handle wma, return QDF_STATUS_E_INVAL; } - params.request_id = psigchange->requestId; - params.session_id = psigchange->sessionId; - params.rssi_sample_size = psigchange->rssiSampleSize; - params.lostap_sample_size = psigchange->lostApSampleSize; - params.min_breaching = psigchange->minBreaching; - params.num_ap = psigchange->numAp; - for (i = 0; i < WLAN_EXTSCAN_MAX_SIGNIFICANT_CHANGE_APS; i++) { - qdf_mem_copy(¶ms.ap[i].bssid, &psigchange->ap[i].bssid, - sizeof(struct qdf_mac_addr)); - params.ap[i].high = psigchange->ap[i].high; - params.ap[i].low = psigchange->ap[i].low; + params_ptr = qdf_mem_malloc(sizeof(*params_ptr)); + + if (!params_ptr) { + WMA_LOGE( + "%s: unable to allocate memory for extscan_set_sig_changereq_params", + __func__); + return QDF_STATUS_E_NOMEM; } - return wmi_unified_extscan_start_change_monitor_cmd(wma->wmi_handle, - ¶ms); + params_ptr->request_id = psigchange->requestId; + params_ptr->session_id = psigchange->sessionId; + params_ptr->rssi_sample_size = psigchange->rssiSampleSize; + params_ptr->lostap_sample_size = psigchange->lostApSampleSize; + params_ptr->min_breaching = psigchange->minBreaching; + params_ptr->num_ap = psigchange->numAp; + for (i = 0; i < WLAN_EXTSCAN_MAX_SIGNIFICANT_CHANGE_APS; i++) { + qdf_mem_copy(¶ms_ptr->ap[i].bssid, + &psigchange->ap[i].bssid, + sizeof(struct qdf_mac_addr)); + params_ptr->ap[i].high = psigchange->ap[i].high; + params_ptr->ap[i].low = psigchange->ap[i].low; + } + + status = wmi_unified_extscan_start_change_monitor_cmd + (wma->wmi_handle, + params_ptr); + qdf_mem_free(params_ptr); + return status; } /**