summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/wma/src/wma_dev_if.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index 50986b15ba84..d1d8eb49b810 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -653,6 +653,19 @@ QDF_STATUS wma_vdev_detach(tp_wma_handle wma_handle,
struct wma_txrx_node *iface = &wma_handle->interfaces[vdev_id];
struct wma_target_req *req_msg;
+ if (!iface->handle || (!cds_is_target_ready())) {
+ WMA_LOGE("handle of vdev_id %d is NULL vdev is already freed or target is not ready",
+ vdev_id);
+ pdel_sta_self_req_param->status = status;
+ if (generateRsp) {
+ wma_send_del_sta_self_resp(pdel_sta_self_req_param);
+ } else {
+ qdf_mem_free(pdel_sta_self_req_param);
+ pdel_sta_self_req_param = NULL;
+ }
+ return status;
+ }
+
if (qdf_atomic_read(&iface->bss_status) == WMA_BSS_STATUS_STARTED) {
req_msg = wma_find_vdev_req(wma_handle, vdev_id,
WMA_TARGET_REQ_TYPE_VDEV_STOP, false);
@@ -668,19 +681,6 @@ QDF_STATUS wma_vdev_detach(tp_wma_handle wma_handle,
}
iface->is_del_sta_defered = false;
- if (!iface->handle) {
- WMA_LOGE("handle of vdev_id %d is NULL vdev is already freed",
- vdev_id);
- pdel_sta_self_req_param->status = status;
- if (generateRsp) {
- wma_send_del_sta_self_resp(pdel_sta_self_req_param);
- } else {
- qdf_mem_free(pdel_sta_self_req_param);
- pdel_sta_self_req_param = NULL;
- }
- return status;
- }
-
if (iface->type == WMI_VDEV_TYPE_STA)
wma_pno_stop(wma_handle, vdev_id);