qcacld-3.0: Reduce Stack usage during IPA Setup

Reduce stack usage by allocating memory dynamically instead of
static allocation during IPA setup.

Change-Id: I438bd1e5b5ca1a467a1ab08d48fbe823190937e8
CRs-Fixed: 2611859
This commit is contained in:
Ananya Gupta
2020-01-29 14:15:18 +05:30
committed by nshrivas
parent a96bd37936
commit a5d2e98580

View File

@@ -489,26 +489,39 @@ static inline bool wlan_ipa_wdi_is_smmu_enabled(struct wlan_ipa_priv *ipa_ctx,
return ipa_ctx->is_smmu_enabled && qdf_mem_smmu_s1_enabled(osdev);
}
static inline QDF_STATUS wlan_ipa_wdi_setup(struct wlan_ipa_priv *ipa_ctx,
qdf_device_t osdev)
static inline QDF_STATUS
wlan_ipa_wdi_setup(struct wlan_ipa_priv *ipa_ctx,
qdf_device_t osdev)
{
qdf_ipa_sys_connect_params_t sys_in[WLAN_IPA_MAX_IFACE];
qdf_ipa_sys_connect_params_t *sys_in = NULL;
int i;
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
sys_in = qdf_mem_malloc(sizeof(*sys_in) * WLAN_IPA_MAX_IFACE);
if (!sys_in) {
ipa_err("sys_in allocation failed");
return QDF_STATUS_E_NOMEM;
}
for (i = 0; i < WLAN_IPA_MAX_IFACE; i++)
qdf_mem_copy(&sys_in[i],
qdf_mem_copy(sys_in + i,
&ipa_ctx->sys_pipe[i].ipa_sys_params,
sizeof(qdf_ipa_sys_connect_params_t));
return cdp_ipa_setup(ipa_ctx->dp_soc, ipa_ctx->dp_pdev_id,
wlan_ipa_i2w_cb, wlan_ipa_w2i_cb,
wlan_ipa_wdi_meter_notifier_cb,
ipa_ctx->config->desc_size,
ipa_ctx, wlan_ipa_is_rm_enabled(ipa_ctx->config),
&ipa_ctx->tx_pipe_handle,
&ipa_ctx->rx_pipe_handle,
wlan_ipa_wdi_is_smmu_enabled(ipa_ctx, osdev),
sys_in, ipa_ctx->over_gsi);
qdf_status = cdp_ipa_setup(ipa_ctx->dp_soc, ipa_ctx->dp_pdev_id,
wlan_ipa_i2w_cb, wlan_ipa_w2i_cb,
wlan_ipa_wdi_meter_notifier_cb,
ipa_ctx->config->desc_size,
ipa_ctx,
wlan_ipa_is_rm_enabled(ipa_ctx->config),
&ipa_ctx->tx_pipe_handle,
&ipa_ctx->rx_pipe_handle,
wlan_ipa_wdi_is_smmu_enabled(ipa_ctx, osdev),
sys_in, ipa_ctx->over_gsi);
qdf_mem_free(sys_in);
return qdf_status;
}
#ifdef FEATURE_METERING