qcacld-3.0: Serialize WMI_ROAM_EVENTID to MC thread

Currently WMI_ROAM_EVENTID is handled in work queue context whereas
WMI_ROAM_SYNCH_EVENTID is handled in MC Thread context. This can
cause handling of WMI_ROAM_SYNCH_EVENTID followed by WMI_ROAM_EVENTID
if both events are received from firmware almost at the same time
which can result in setting roaming_in_progress to true even after
roam synch event handling and can block further scan requests.
Fix this by handling both WMI_ROAM_EVENTID and WMI_ROAM_SYNCH_EVENTID
in same MC Thread context.

Change-Id: I722cea54fa2126cb5d647f3a26371ca1c9a0f5a2
CRs-Fixed: 2014404
This commit is contained in:
Padma, Santhosh Kumar
2017-03-02 18:04:02 +05:30
committed by qcabuildsw
parent e586ade30d
commit 18169ce96e

View File

@@ -2995,7 +2995,7 @@ QDF_STATUS wma_start(void *cds_ctx)
status = wmi_unified_register_event_handler(wma_handle->wmi_handle,
WMI_ROAM_EVENTID,
wma_roam_event_callback,
WMA_RX_WORK_CTX);
WMA_RX_SERIALIZER_CTX);
if (0 != status) {
WMA_LOGP("%s: Failed to register Roam callback", __func__);
qdf_status = QDF_STATUS_E_FAILURE;