qca-wifi: Assign proper precac_index for legacy preCAC
Bring up a Cascade AP in HT80 mode, country DK and enable preCAC config. During vap start, a preCAC channel is chosen by invoking tgt_dfs_find_vht80_precac_chan_freq() and then dfs_start_precac_timer_for_freq() is invoked to start the preCAC timer. In dfs_start_precac_timer_for_freq(), the dfs pdev object is fetched indexing cur_precac_dfs_index in DFS SOC object as follows: "dfs_soc_obj->dfs_priv[dfs_soc_obj->cur_precac_dfs_index].dfs". The cur_precac_dfs_index is initialized to 0xFF in dfs_rcac_sm_create(). This index is then over-written to the current DFS pdev index in case of agile preCAC in dfs_prepare_agile_precac_chan() API. This API is not invoked in case of legacy preCAC and hence cur_precac_dfs_index continues to hold 0xFF. This leads to kernel paging request failure and the system crashes. Initialize 'cur_precac_dfs_index' to dfs->dfs_psoc_idx which holds the index of the active dfs pdev. CRs-Fixed: 2708233 Change-Id: I3aae7ea8f611d72bfe23c20cc2a34d94bba83485
Este commit está contenido en:
@@ -4095,6 +4095,7 @@ void dfs_start_precac_timer_for_freq(struct wlan_dfs *dfs,
|
||||
struct dfs_soc_priv_obj *dfs_soc_obj;
|
||||
|
||||
dfs_soc_obj = dfs->dfs_soc_obj;
|
||||
dfs_soc_obj->cur_precac_dfs_index = dfs->dfs_psoc_idx;
|
||||
dfs = dfs_soc_obj->dfs_priv[dfs_soc_obj->cur_precac_dfs_index].dfs;
|
||||
#define EXTRA_TIME_IN_SEC 5
|
||||
dfs_soc_obj->dfs_precac_timer_running = 1;
|
||||
|
Referencia en una nueva incidencia
Block a user