1
0

qcacld-3.0: Fix vdev ref leak in P2P-GO during SSR

If P2P-GO is active and SSR happens the vdev ref coount taken
by sap_ctx is not released and this lead to ref count leak.

To fix this release vdev ref count for sap_ctx in
hdd_reset_all_adapters().

Change-Id: Id35247a917f3e0c3e163ea00a7a850cdf28ddd80
CRs-Fixed: 2410121
Este cometimento está contido em:
Abhishek Singh
2019-03-06 10:29:24 +05:30
cometido por nshrivas
ascendente 060df6ed91
cometimento 8f4aa18225
3 ficheiros modificados com 27 adições e 2 eliminações

Ver ficheiro

@@ -1303,6 +1303,14 @@ uint32_t wlansap_get_chan_width(struct sap_context *sap_ctx);
*/
QDF_STATUS wlansap_set_invalid_session(struct sap_context *sap_ctx);
/*
* wlansap_set_invalid_session() - Release vdev ref taken by sap context
* @sap_ctx: pointer to the SAP context
*
* Return: QDF_STATUS
*/
QDF_STATUS wlansap_release_vdev_ref(struct sap_context *sap_ctx);
/**
* sap_get_cac_dur_dfs_region() - get cac duration and dfs region.
* @sap_ctxt: sap context

Ver ficheiro

@@ -2441,13 +2441,24 @@ QDF_STATUS wlansap_set_invalid_session(struct sap_context *sap_ctx)
return QDF_STATUS_E_FAILURE;
}
sap_release_vdev_ref(sap_ctx);
sap_ctx->sessionId = CSR_SESSION_ID_INVALID;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wlansap_release_vdev_ref(struct sap_context *sap_ctx)
{
if (!sap_ctx) {
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
FL("Invalid SAP pointer"));
return QDF_STATUS_E_FAILURE;
}
sap_release_vdev_ref(sap_ctx);
return QDF_STATUS_SUCCESS;
}
void wlansap_cleanup_cac_timer(struct sap_context *sap_ctx)
{
struct mac_context *mac;