summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortinlin <tinlin@codeaurora.org>2018-08-21 17:17:20 +0800
committertinlin <tinlin@codeaurora.org>2018-08-21 17:58:07 +0800
commit954c04a67fa6f4cb3c1896600c51339fb2092789 (patch)
treec46686552b7543eb4957bb461150fb431d480530
parentfce1979aa051d6a0f3bbb2a77aa3024d476dd70a (diff)
qcacld-2.0: Fix in wma_vdev_start_rsp_ind
Propagation from cld3.0 to cld2.0. When a channel switch request has occured, there will not be a hidden ssid restart event in progress. So add check to validate if the req_msg->msg_type == WDA_HIDDEN_SSID_VDEV_RESTART. Change-Id: Ie3195b23ff136fbfd38fcd4d32e993d4cb016316 CRs-Fixed: 2300291
-rw-r--r--CORE/SERVICES/WMA/wma.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 5aac904be601..d58a33822e52 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -1368,10 +1368,20 @@ static int wma_vdev_start_rsp_ind(tp_wma_handle wma, u_int8_t *buf)
iface = &wma->interfaces[resp_event->vdev_id];
+ req_msg = wma_find_vdev_req(wma, resp_event->vdev_id,
+ WMA_TARGET_REQ_TYPE_VDEV_START);
+
+ if (!req_msg) {
+ WMA_LOGE("%s: Failed to lookup request message for vdev %d",
+ __func__, resp_event->vdev_id);
+ return -EINVAL;
+ }
+
if ((resp_event->vdev_id < wma->max_bssid) &&
(adf_os_atomic_read(
&wma->interfaces[resp_event->vdev_id].vdev_restart_params.hidden_ssid_restart_in_progress)) &&
- (wma_is_vdev_in_ap_mode(wma, resp_event->vdev_id) == true)) {
+ (wma_is_vdev_in_ap_mode(wma, resp_event->vdev_id) == true) &&
+ (req_msg->msg_type == WDA_HIDDEN_SSID_VDEV_RESTART)) {
WMA_LOGE(
"%s: vdev restart event recevied for hidden ssid set using IOCTL",
__func__);
@@ -1396,15 +1406,6 @@ static int wma_vdev_start_rsp_ind(tp_wma_handle wma, u_int8_t *buf)
}
- req_msg = wma_find_vdev_req(wma, resp_event->vdev_id,
- WMA_TARGET_REQ_TYPE_VDEV_START);
-
- if (!req_msg) {
- WMA_LOGE("%s: Failed to lookup request message for vdev %d",
- __func__, resp_event->vdev_id);
- return -EINVAL;
- }
-
vos_timer_stop(&req_msg->event_timeout);
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE