qcacld-3.0: Send BMISS disconnection event after roam result event

Currently the beacon miss disconnection is sent when host
wlan driver triggers disconnect and roam result is printed
after the roam stats event is received. Since roam
stats event is received after host triggers disconnect,
the order of prints is BMISS_DISCONN -> ROAM SCAN ->
ROAM_SCAN_DONE-> ROAM_RESULT.

But the expected order is ROAM_SCAN->ROAM_SCAN_DONE->ROAM_RESULT
->BMISS_DISCONN.
So send beacon miss disconnection event after roam result.

Change-Id: Ib1695962bc1613fa4101cebf28b188db42fb5ab5
CRs-Fixed: 3152370
This commit is contained in:
Pragaspathi Thilagaraj
2022-03-16 17:20:39 +05:30
committed by Madan Koyyalamudi
parent 00b8c44109
commit 54fee51319
5 changed files with 78 additions and 27 deletions

View File

@@ -2913,6 +2913,7 @@ cm_roam_stats_print_scan_info(struct wmi_roam_scan_data *scan, uint8_t vdev_id,
/**
* cm_roam_stats_print_roam_result() - Print roam result related info
* @psoc: Pointer to psoc object
* @res: Roam result strucure pointer
* @vdev_id: Vdev id
*
@@ -2921,7 +2922,9 @@ cm_roam_stats_print_scan_info(struct wmi_roam_scan_data *scan, uint8_t vdev_id,
* Return: None
*/
static void
cm_roam_stats_print_roam_result(struct wmi_roam_result *res,
cm_roam_stats_print_roam_result(struct wlan_objmgr_psoc *psoc,
struct wmi_roam_trigger_info *trigger,
struct wmi_roam_result *res,
struct wmi_roam_scan_data *scan_data,
uint8_t vdev_id)
{
@@ -2929,7 +2932,7 @@ cm_roam_stats_print_roam_result(struct wmi_roam_result *res,
char time[TIME_STRING_LEN];
/* Update roam result info to userspace */
cm_roam_result_info_event(res, scan_data, vdev_id);
cm_roam_result_info_event(psoc, trigger, res, scan_data, vdev_id);
buf = qdf_mem_malloc(ROAM_FAILURE_BUF_SIZE);
if (!buf)
@@ -3172,7 +3175,9 @@ cm_roam_stats_event_handler(struct wlan_objmgr_psoc *psoc,
stats_info->trigger[i].timestamp);
if (stats_info->result[i].present) {
cm_roam_stats_print_roam_result(&stats_info->result[i],
cm_roam_stats_print_roam_result(psoc,
&stats_info->trigger[i],
&stats_info->result[i],
&stats_info->scan[i],
stats_info->vdev_id);
status = wlan_cm_update_roam_states(psoc,