qcacld-3.0: remove duplicate code logic and race condition

Currently, there is duplicate logic in function
wlansap_roam_process_ch_change_success to invoke
function wlansap_start_beacon_req.
  a\ wlansap_roam_process_ch_change_success ->
	wlansap_start_beacon_req(sap_ctx)
  b\ wlansap_roam_process_ch_change_success ->
	sap_fsm -> sap_fsm_state_starting ->
	wlansap_start_beacon_req(sap_ctx)
This causes fw crash since it sends vdev up twice.

Also in SAP + SAP scenario, there is a race in updating global
variable mac_ctx->sap.SapDfsInfo.sap_radar_found_status. Move the
variable to sap_ctx per vdev to avoid such race.

Change-Id: Iaac9e5a649ea5fd6a8378f6da47c51112fbe8d18
CRs-Fixed: 3310317
このコミットが含まれているのは:
Paul Zhang
2022-10-14 15:03:47 +08:00
committed by Madan Koyyalamudi
コミット bc894a28b6
5個のファイルの変更12行の追加16行の削除

ファイルの表示

@@ -578,7 +578,6 @@ typedef struct sSapDfsNolInfo {
typedef struct sSapDfsInfo {
qdf_mc_timer_t sap_dfs_cac_timer;
uint8_t sap_radar_found_status;
/*
* New channel frequency to move to when a Radar is
* detected on current Channel