From: Vasanthakumar Thiagarajan Date: Wed, 27 Nov 2019 16:30:09 +0000 (+0200) Subject: ath11k: Fix target crash due to WBM_IDLE_LINK ring desc shortage X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=051cefa4466744cb669d7eef9399cbf850b2a6d4;p=linux.git ath11k: Fix target crash due to WBM_IDLE_LINK ring desc shortage Make sure the number of WBM_IDLE_LINK ring descriptors is power of 2. This increases the number of descriptors to 32k from the current ~18k to fix the target assert because of the shortage in the descriptors in WBM_IDLE_LINK ring. Remove unnecessary power of 2 calculation in ath11k_dp_link_desc_setup() as it is not required after this change. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo --- diff --git a/drivers/net/wireless/ath/ath11k/dp.c b/drivers/net/wireless/ath/ath11k/dp.c index ff510e821a291..72c21cf6a3522 100644 --- a/drivers/net/wireless/ath/ath11k/dp.c +++ b/drivers/net/wireless/ath/ath11k/dp.c @@ -478,6 +478,9 @@ static int ath11k_wbm_idle_ring_setup(struct ath11k_base *ab, u32 *n_link_desc) *n_link_desc = n_mpdu_link_desc + n_mpdu_queue_desc + n_tx_msdu_link_desc + n_rx_msdu_link_desc; + if (*n_link_desc & (*n_link_desc - 1)) + *n_link_desc = 1 << fls(*n_link_desc); + ret = ath11k_dp_srng_setup(ab, &dp->wbm_idle_ring, HAL_WBM_IDLE_LINK, 0, 0, *n_link_desc); if (ret) { @@ -499,9 +502,6 @@ int ath11k_dp_link_desc_setup(struct ath11k_base *ab, u32 *desc; int i, ret; - if (n_link_desc & (n_link_desc - 1)) - n_link_desc = 1 << fls(n_link_desc); - tot_mem_sz = n_link_desc * HAL_LINK_DESC_SIZE; tot_mem_sz += HAL_LINK_DESC_ALIGN;