qcacmn: Fix DFS kernel panic
Analysis: dfs_nol_timer_cleanup() calls dfs_nol_update(), which internally calls a legacy function to update the scan channel list and sends a WMI command to FW. However, from WIN side dfs_nol_timer_cleanup() is also called after target stop, which leads to a kernel panic. Solution: Call dfs_nol_update() prior to target stop. Initalize precac channel list during dfs reset. Change-Id: If856d436ad215efa46cfc166d95bf3ccb4e7bf99 CRs-Fixed: 2096256
This commit is contained in:

committed by
snandini

parent
33d5173722
commit
c2fc6d09c6
@@ -331,7 +331,6 @@ int dfs_attach(struct wlan_dfs *dfs)
|
|||||||
|
|
||||||
void dfs_stop(struct wlan_dfs *dfs)
|
void dfs_stop(struct wlan_dfs *dfs)
|
||||||
{
|
{
|
||||||
dfs_init_precac_list(dfs);
|
|
||||||
dfs_nol_timer_cleanup(dfs);
|
dfs_nol_timer_cleanup(dfs);
|
||||||
dfs_clear_nolhistory(dfs);
|
dfs_clear_nolhistory(dfs);
|
||||||
}
|
}
|
||||||
|
@@ -495,7 +495,6 @@ void dfs_nol_timer_cleanup(struct wlan_dfs *dfs)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dfs->dfs_nol = NULL;
|
dfs->dfs_nol = NULL;
|
||||||
dfs_nol_update(dfs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int dfs_get_rn_use_nol(struct wlan_dfs *dfs)
|
int dfs_get_rn_use_nol(struct wlan_dfs *dfs)
|
||||||
|
@@ -46,6 +46,8 @@ QDF_STATUS utils_dfs_reset(struct wlan_objmgr_pdev *pdev)
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
dfs_reset(dfs);
|
dfs_reset(dfs);
|
||||||
|
dfs_nol_update(dfs);
|
||||||
|
dfs_init_precac_list(dfs);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -662,6 +664,7 @@ void dfs_clear_nol_channels(struct wlan_objmgr_pdev *pdev)
|
|||||||
|
|
||||||
/* clear local cache first */
|
/* clear local cache first */
|
||||||
dfs_nol_timer_cleanup(dfs);
|
dfs_nol_timer_cleanup(dfs);
|
||||||
|
dfs_nol_update(dfs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* update platform driver nol list with local cache which is zero,
|
* update platform driver nol list with local cache which is zero,
|
||||||
|
Reference in New Issue
Block a user