summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiad <jiad@codeaurora.org>2018-01-02 13:06:16 +0800
committersnandini <snandini@codeaurora.org>2018-01-22 22:47:35 -0800
commit1cd727cf74be00395117678bfa588eb1698ee63c (patch)
tree6254a42a5577a065a726b307af98f041e6f9fd4e
parentf214806dc573bae3627005e96ddb84d50f14d521 (diff)
qcacld-3.0: Fix frame-larger-than build error
Build option -Werror=frame-larger-than= throws frame size larger than 1024 bytes build errors. Change-Id: I7d6b87e247f8c4dc31b2f4f0cd108f404fabacd1 CRs-Fixed: 2165532
-rw-r--r--core/hdd/src/wlan_hdd_main.c18
-rw-r--r--core/sme/inc/sme_api.h4
-rw-r--r--core/sme/src/common/sme_api.c65
3 files changed, 70 insertions, 17 deletions
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index f0d0aafc944a..dac01a516a9c 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -7117,7 +7117,8 @@ hdd_display_netif_queue_history_compact(hdd_context_t *hdd_ctx)
qdf_time_t total, pause, unpause, curr_time, delta;
QDF_STATUS status;
char temp_str[20 * WLAN_REASON_TYPE_MAX];
- char comb_log_str[(ADAP_NETIFQ_LOG_LEN * MAX_NUMBER_OF_ADAPTERS) + 1];
+ char *comb_log_str;
+ uint32_t comb_log_str_size;
struct ol_txrx_pdev_t *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
hdd_adapter_t *adapter = NULL;
hdd_adapter_list_node_t *adapter_node = NULL, *next = NULL;
@@ -7127,8 +7128,14 @@ hdd_display_netif_queue_history_compact(hdd_context_t *hdd_ctx)
return;
}
+ comb_log_str_size = (ADAP_NETIFQ_LOG_LEN * MAX_NUMBER_OF_ADAPTERS) + 1;
+ comb_log_str = qdf_mem_malloc(comb_log_str_size);
+ if (!comb_log_str) {
+ hdd_err("failed to alloc comb_log_str");
+ return;
+ }
+
bytes_written = 0;
- qdf_mem_set(comb_log_str, 0, sizeof(comb_log_str));
status = hdd_get_front_adapter(hdd_ctx, &adapter_node);
while (NULL != adapter_node && QDF_STATUS_SUCCESS == status) {
adapter = adapter_node->pAdapter;
@@ -7167,8 +7174,8 @@ hdd_display_netif_queue_history_compact(hdd_context_t *hdd_ctx)
hdd_warn("log truncated");
bytes_written += snprintf(&comb_log_str[bytes_written],
- bytes_written >= sizeof(comb_log_str) ? 0 :
- sizeof(comb_log_str) - bytes_written,
+ bytes_written >= comb_log_str_size ? 0 :
+ comb_log_str_size - bytes_written,
"[%d %d] (%d) %u/%ums %s|",
adapter->sessionId, adapter->device_mode,
adapter->pause_map,
@@ -7187,9 +7194,10 @@ hdd_display_netif_queue_history_compact(hdd_context_t *hdd_ctx)
pdev->tx_desc.num_free,
pdev->tx_desc.pool_size, comb_log_str);
- if (bytes_written >= sizeof(comb_log_str))
+ if (bytes_written >= comb_log_str_size)
hdd_warn("log string truncated");
+ qdf_mem_free(comb_log_str);
}
/**
diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h
index 1017890ed6f1..9a750586d0dc 100644
--- a/core/sme/inc/sme_api.h
+++ b/core/sme/inc/sme_api.h
@@ -922,8 +922,8 @@ const char *sme_scan_type_to_string(const uint8_t scan_type);
const char *sme_bss_type_to_string(const uint8_t bss_type);
QDF_STATUS sme_ap_disable_intra_bss_fwd(tHalHandle hHal, uint8_t sessionId,
bool disablefwd);
-uint32_t sme_get_channel_bonding_mode5_g(tHalHandle hHal);
-uint32_t sme_get_channel_bonding_mode24_g(tHalHandle hHal);
+QDF_STATUS sme_get_channel_bonding_mode5_g(tHalHandle hHal, uint32_t *mode);
+QDF_STATUS sme_get_channel_bonding_mode24_g(tHalHandle hHal, uint32_t *mode);
#ifdef WLAN_FEATURE_STATS_EXT
typedef struct sStatsExtRequestReq {
uint32_t request_data_len;
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 632cd7bc729c..06ff6629f4fe 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -3816,17 +3816,39 @@ eCsrPhyMode sme_get_phy_mode(tHalHandle hHal)
* sme_get_channel_bonding_mode5_g() - get the channel bonding mode for 5G band
*
* @hHal - HAL handle
+ * @mode - channel bonding mode
*
- * Return channel bonding mode for 5G
+ * Return QDF_STATUS
*/
-uint32_t sme_get_channel_bonding_mode5_g(tHalHandle hHal)
+QDF_STATUS sme_get_channel_bonding_mode5_g(tHalHandle hHal, uint32_t *mode)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
- tSmeConfigParams smeConfig;
+ tSmeConfigParams *smeConfig;
+
+ if (!mode) {
+ QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+ "%s: invalid mode", __func__);
+ return QDF_STATUS_E_FAILURE;
+ }
- sme_get_config_param(pMac, &smeConfig);
+ smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
+ if (!smeConfig) {
+ QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+ "%s: failed to alloc smeConfig", __func__);
+ return QDF_STATUS_E_NOMEM;
+ }
- return smeConfig.csrConfig.channelBondingMode5GHz;
+ if (sme_get_config_param(pMac, smeConfig) != QDF_STATUS_SUCCESS) {
+ QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+ "%s: sme_get_config_param failed", __func__);
+ qdf_mem_free(smeConfig);
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *mode = smeConfig->csrConfig.channelBondingMode5GHz;
+ qdf_mem_free(smeConfig);
+
+ return QDF_STATUS_SUCCESS;
}
/**
@@ -3834,16 +3856,39 @@ uint32_t sme_get_channel_bonding_mode5_g(tHalHandle hHal)
* band
*
* hHal - HAL handle
- * Return channel bonding mode for 2.4G
+ * @mode - channel bonding mode
+ *
+ * Return QDF_STATUS
*/
-uint32_t sme_get_channel_bonding_mode24_g(tHalHandle hHal)
+QDF_STATUS sme_get_channel_bonding_mode24_g(tHalHandle hHal, uint32_t *mode)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
- tSmeConfigParams smeConfig;
+ tSmeConfigParams *smeConfig;
+
+ if (!mode) {
+ QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+ "%s: invalid mode", __func__);
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
+ if (!smeConfig) {
+ QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+ "%s: failed to alloc smeConfig", __func__);
+ return QDF_STATUS_E_NOMEM;
+ }
- sme_get_config_param(pMac, &smeConfig);
+ if (sme_get_config_param(pMac, smeConfig) != QDF_STATUS_SUCCESS) {
+ QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
+ "%s: sme_get_config_param failed", __func__);
+ qdf_mem_free(smeConfig);
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ *mode = smeConfig->csrConfig.channelBondingMode24GHz;
+ qdf_mem_free(smeConfig);
- return smeConfig.csrConfig.channelBondingMode24GHz;
+ return QDF_STATUS_SUCCESS;
}
/**