From 9cfc2f5535bd1e01fb3d165430f0c56ff5d3b6e6 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Fri, 8 Mar 2019 20:29:49 +0530 Subject: [PATCH] qcacld-3.0: Pass proper arguments while sending EV_ROAM to VDEV SM Currently, while handling roam sync event wma_roam_synch_event_handler invokes wlan_vdev_mlme_sm_deliver_evt with extracted synch event as an argument. Driver assumes extracted synch event as event buffer and try to get sync event again. which results assert in host while roaming. wma_roam_synch_event_handler should pass roam sync event and its lenght as arguments which is coming through WMI_ROAM_SYNCH_EVENTID to wlan_vdev_mlme_sm_deliver_evt to send EV_ROAM. Fix is to pass proper argument to wlan_vdev_mlme_sm_deliver_evt in order to resolve this assert. Change-Id: I37f03a19e45189e61a5b86f714048816af7f5e5f CRs-Fixed: 2412552 --- core/wma/src/wma_scan_roam.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 866d0120b453..2221649c1502 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -2823,8 +2823,8 @@ int wma_roam_synch_event_handler(void *handle, uint8_t *event, iface = &wma->interfaces[synch_event->vdev_id]; qdf_status = wlan_vdev_mlme_sm_deliver_evt(iface->vdev, WLAN_VDEV_SM_EV_ROAM, - sizeof(*synch_event), - synch_event); + len, + event); if (QDF_IS_STATUS_ERROR(qdf_status)) { wma_err("Failed to send the EV_ROAM"); } else {