From 3557765ca9e6abebf249b010b557cbfe7625d0bf Mon Sep 17 00:00:00 2001 From: Kiran Kumar Lokere Date: Fri, 14 Jul 2017 02:06:56 -0700 Subject: [PATCH] qcacld-3.0: Send fail response to del_self_sta req without del_bss Send the failure response for delete self sta request to SME if the delete bss request is not present or being processed. Change-Id: I8af9c96ee2027faf256563f800159070146770c8 CRs-Fixed: 2076336 --- core/wma/src/wma_dev_if.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 36bee957c748..df94c6d54d93 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -639,8 +639,15 @@ QDF_STATUS wma_vdev_detach(tp_wma_handle wma_handle, QDF_STATUS status = QDF_STATUS_SUCCESS; uint8_t vdev_id = pdel_sta_self_req_param->session_id; struct wma_txrx_node *iface = &wma_handle->interfaces[vdev_id]; + struct wma_target_req *req_msg; 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); + if (!req_msg) + goto send_fail_rsp; + if (req_msg->msg_type != WMA_DELETE_BSS_REQ) + goto send_fail_rsp; WMA_LOGA("BSS is not yet stopped. Defering vdev(vdev id %x) deletion", vdev_id); iface->del_staself_req = pdel_sta_self_req_param; @@ -676,6 +683,13 @@ QDF_STATUS wma_vdev_detach(tp_wma_handle wma_handle, } return status; + +send_fail_rsp: + WMA_LOGE("rcvd del_self_sta without del_bss, send fail rsp, vdev_id %d", + vdev_id); + pdel_sta_self_req_param->status = QDF_STATUS_E_FAILURE; + wma_send_del_sta_self_resp(pdel_sta_self_req_param); + return status; } /**