Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1881bb98 authored by Jianmin Zhu's avatar Jianmin Zhu Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Fix roam failed for SAP CSA concurrency

When vdev0 STA roamed to another channel, vdev1 SAP CSA for SCC
when ROAM_SYNCH_IN_PROG, will disable roam, but no RSO stop to F/W,
F/W RSO isn't disabled, but host vdev0 will enter RSO_STOPPED, host
F/W RSO state out of sync.
If vdev0 STA next roam sync come soon,  it won't be handled for host
RSO_STOPPED, neither roam sync complete nor disconnect will happen,
F/W will asert after wait roam sync complete timeout.
To fix it, Only do SAP CSA check after roam complete and RSO
reenabled, can avoid host F/W RSO state out of sync issue.

Change-Id: I77ccf30cac38f62c6ef8330c6da00364249b242e
CRs-Fixed: 3076935
parent dc721ec3
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
@@ -28,6 +29,7 @@
#include "wlan_p2p_ucfg_api.h"
#include "wlan_tdls_ucfg_api.h"
#include "wlan_tdls_api.h"
#include "wlan_cm_roam_api.h"

QDF_STATUS if_mgr_connect_start(struct wlan_objmgr_vdev *vdev,
				struct if_mgr_event_data *event_data)
@@ -140,6 +142,7 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,

	policy_mgr_check_n_start_opportunistic_timer(psoc);

	if (!wlan_cm_roaming_in_progress(pdev, vdev->vdev_objmgr.vdev_id))
		policy_mgr_check_concurrent_intf_and_restart_sap(psoc);

	return QDF_STATUS_SUCCESS;
+1 −1
Original line number Diff line number Diff line
@@ -21309,7 +21309,6 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
		}
		policy_mgr_check_n_start_opportunistic_timer(mac_ctx->psoc);
		policy_mgr_check_concurrent_intf_and_restart_sap(mac_ctx->psoc);
		vdev_roam_params->roam_invoke_in_progress = false;
		if (roam_synch_data->authStatus ==
@@ -21328,6 +21327,7 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
						   WLAN_ROAM_INIT,
						   REASON_CONNECT);
		}
		policy_mgr_check_concurrent_intf_and_restart_sap(mac_ctx->psoc);
		goto end;
	case SIR_ROAMING_DEAUTH:
		csr_roam_roaming_offload_timer_action(