|
@@ -2061,6 +2061,11 @@ static void dp_ast_aging_timer_fn(void *soc_hdl)
|
|
|
soc->wds_ast_aging_timer_cnt = 0;
|
|
|
check_wds_ase = true;
|
|
|
}
|
|
|
+
|
|
|
+ /* Peer list access lock */
|
|
|
+ qdf_spin_lock_bh(&soc->peer_ref_mutex);
|
|
|
+
|
|
|
+ /* AST list access lock */
|
|
|
qdf_spin_lock_bh(&soc->ast_lock);
|
|
|
|
|
|
for (i = 0; i < MAX_PDEV_CNT && soc->pdev_list[i]; i++) {
|
|
@@ -2114,6 +2119,7 @@ static void dp_ast_aging_timer_fn(void *soc_hdl)
|
|
|
}
|
|
|
|
|
|
qdf_spin_unlock_bh(&soc->ast_lock);
|
|
|
+ qdf_spin_unlock_bh(&soc->peer_ref_mutex);
|
|
|
|
|
|
if (qdf_atomic_read(&soc->cmn_init_done))
|
|
|
qdf_timer_mod(&soc->ast_aging_timer,
|
|
@@ -2652,8 +2658,6 @@ static int dp_soc_cmn_setup(struct dp_soc *soc)
|
|
|
goto fail1;
|
|
|
}
|
|
|
|
|
|
- qdf_spinlock_create(&soc->ast_lock);
|
|
|
- dp_soc_wds_attach(soc);
|
|
|
|
|
|
/* Reset the cpu ring map if radio is NSS offloaded */
|
|
|
if (wlan_cfg_get_dp_soc_nss_cfg(soc_cfg_ctx)) {
|
|
@@ -3668,6 +3672,8 @@ static void dp_soc_deinit(void *txrx_soc)
|
|
|
dp_srng_deinit(soc, &soc->reo_cmd_ring, REO_CMD, 0);
|
|
|
dp_srng_deinit(soc, &soc->reo_status_ring, REO_STATUS, 0);
|
|
|
|
|
|
+ dp_soc_wds_detach(soc);
|
|
|
+
|
|
|
qdf_spinlock_destroy(&soc->peer_ref_mutex);
|
|
|
qdf_spinlock_destroy(&soc->htt_stats.lock);
|
|
|
|
|
@@ -3679,7 +3685,6 @@ static void dp_soc_deinit(void *txrx_soc)
|
|
|
qdf_spinlock_destroy(&soc->rx.reo_cmd_lock);
|
|
|
dp_reo_desc_freelist_destroy(soc);
|
|
|
|
|
|
- dp_soc_wds_detach(soc);
|
|
|
qdf_spinlock_destroy(&soc->ast_lock);
|
|
|
|
|
|
dp_soc_mem_reset(soc);
|
|
@@ -9437,6 +9442,8 @@ void *dp_soc_init(void *dpsoc, HTC_HANDLE htc_handle, void *hif_handle)
|
|
|
}
|
|
|
|
|
|
qdf_spinlock_create(&soc->peer_ref_mutex);
|
|
|
+ qdf_spinlock_create(&soc->ast_lock);
|
|
|
+ dp_soc_wds_attach(soc);
|
|
|
|
|
|
qdf_spinlock_create(&soc->reo_desc_freelist_lock);
|
|
|
qdf_list_create(&soc->reo_desc_freelist, REO_DESC_FREELIST_SIZE);
|