diff options
| author | tinlin <tinlin@codeaurora.org> | 2018-08-21 17:17:20 +0800 |
|---|---|---|
| committer | tinlin <tinlin@codeaurora.org> | 2018-08-21 17:58:07 +0800 |
| commit | 954c04a67fa6f4cb3c1896600c51339fb2092789 (patch) | |
| tree | c46686552b7543eb4957bb461150fb431d480530 | |
| parent | fce1979aa051d6a0f3bbb2a77aa3024d476dd70a (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.c | 21 |
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 |
