qcacld-3.0: Release WLAN_LEGACY_WMA_ID ref before vdev del command

In legacy code WLAN_LEGACY_WMA_ID reference was released after
sending vdev delete command to firmware. Now with converged vdev
manager, if wmi service "wmi_service_sync_delete_cmds" is not enabled
then vdev delete response is sent to upper layer through target_if.

Hence WLAN_LEGACY_WMA_ID reference for vdev is released before sending
vdev delete command and then wma_txrx_node for the vdev is cleaned up.

Change-Id: I717a7911a5139dc5145e7702e831f6f026c8f3aa
CRs-Fixed: 2518231
This commit is contained in:
Abhishek Ambure 2019-08-30 19:12:24 +05:30 committed by nshrivas
parent 36c6975c31
commit bfcf12f03b

View File

@ -720,13 +720,13 @@ static QDF_STATUS wma_handle_vdev_detach(tp_wma_handle wma_handle,
iface->del_staself_req = del_vdev_req_param; iface->del_staself_req = del_vdev_req_param;
wlan_vdev_set_dp_handle(iface->vdev, NULL); wlan_vdev_set_dp_handle(iface->vdev, NULL);
wma_cdp_vdev_detach(soc, wma_handle, vdev_id); wma_cdp_vdev_detach(soc, wma_handle, vdev_id);
wma_release_vdev_ref(iface);
status = vdev_mgr_delete_send(vdev_mlme); status = vdev_mgr_delete_send(vdev_mlme);
if (QDF_IS_STATUS_ERROR(status)) { if (QDF_IS_STATUS_ERROR(status)) {
WMA_LOGE("Unable to remove an interface"); WMA_LOGE("Unable to remove an interface");
goto out; goto out;
} }
wma_release_vdev_ref(iface);
return status; return status;