qcacld-3.0: Dont send response to LIM during roam sync

WMA is sending response to ADD_STA and
ADD_BSS request during failure scenario.

Add conditions not to send the response to LIM
during the roam sync indication operation.

Change-Id: Iad9a8b28e1029ebd12e2022fb38d2aa01a03e9aa
CRs-fixed: 1061963
(cherry picked from commit b23176083295303da6847274120af8ab48e62730)
Этот коммит содержится в:
Sandeep Puligilla
2016-08-31 23:55:07 -07:00
коммит произвёл qcabuildsw
родитель d9b6ca8632
Коммит 2ff3ebe4a7

Просмотреть файл

@@ -2988,7 +2988,7 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
ol_txrx_pdev_handle pdev; ol_txrx_pdev_handle pdev;
struct wma_vdev_start_req req; struct wma_vdev_start_req req;
struct wma_target_req *msg; struct wma_target_req *msg;
uint8_t vdev_id, peer_id; uint8_t peer_id;
ol_txrx_peer_handle peer = NULL; ol_txrx_peer_handle peer = NULL;
QDF_STATUS status; QDF_STATUS status;
struct wma_txrx_node *iface; struct wma_txrx_node *iface;
@@ -2998,6 +2998,7 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
struct sir_hw_mode_params hw_mode = {0}; struct sir_hw_mode_params hw_mode = {0};
bool peer_assoc_sent = false; bool peer_assoc_sent = false;
struct pdev_params param = {0}; struct pdev_params param = {0};
uint8_t vdev_id = add_bss->staContext.smesessionId;
if (NULL == pMac) { if (NULL == pMac) {
WMA_LOGE("%s: Unable to get PE context", __func__); WMA_LOGE("%s: Unable to get PE context", __func__);
@@ -3011,7 +3012,6 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
goto send_fail_resp; goto send_fail_resp;
} }
vdev_id = add_bss->staContext.smesessionId;
iface = &wma->interfaces[vdev_id]; iface = &wma->interfaces[vdev_id];
wma_set_bss_rate_flags(iface, add_bss); wma_set_bss_rate_flags(iface, add_bss);
@@ -3277,7 +3277,8 @@ peer_cleanup:
roam_synch_in_progress); roam_synch_in_progress);
send_fail_resp: send_fail_resp:
add_bss->status = QDF_STATUS_E_FAILURE; add_bss->status = QDF_STATUS_E_FAILURE;
wma_send_msg(wma, WMA_ADD_BSS_RSP, (void *)add_bss, 0); if (!wma_is_roam_synch_in_progress(wma, vdev_id))
wma_send_msg(wma, WMA_ADD_BSS_RSP, (void *)add_bss, 0);
} }
/** /**
@@ -3723,6 +3724,12 @@ static void wma_add_sta_req_sta_mode(tp_wma_handle wma, tpAddStaParams params)
goto out; goto out;
} }
peer = ol_txrx_find_peer_by_addr(pdev, params->bssId, &params->staIdx); peer = ol_txrx_find_peer_by_addr(pdev, params->bssId, &params->staIdx);
if (peer == NULL) {
WMA_LOGE("%s: Peer is not present vdev id %d for %pM", __func__,
params->smesessionId, params->bssId);
status = QDF_STATUS_E_FAILURE;
goto out;
}
if (params->nonRoamReassoc) { if (params->nonRoamReassoc) {
ol_txrx_peer_state_update(pdev, params->bssId, ol_txrx_peer_state_update(pdev, params->bssId,
OL_TXRX_PEER_STATE_AUTH); OL_TXRX_PEER_STATE_AUTH);
@@ -3916,7 +3923,9 @@ out:
params->staType, params->smesessionId, params->staType, params->smesessionId,
params->assocId, params->bssId, params->staIdx, params->assocId, params->bssId, params->staIdx,
params->status); params->status);
wma_send_msg(wma, WMA_ADD_STA_RSP, (void *)params, 0); /* Don't send a response during roam sync operation */
if (!wma_is_roam_synch_in_progress(wma, params->smesessionId))
wma_send_msg(wma, WMA_ADD_STA_RSP, (void *)params, 0);
} }
/** /**