Re: [PATCH v3] wifi: ath11k: move .max_tx_ring to struct ath11k_hw_hal_params
Vasanthakumar Thiagarajan <[email protected]>
| Newsgroups | org.infradead.lists.ath11k,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <[email protected]> |
On 12/28/2025 8:44 PM, Alexandru Gagniuc wrote: > ".max_tx_ring" is an upper bounds to indexing ".tcl2wbm_rbm_map". It > is initialized in, core.c, a different file than the array. This > spaghetti-like relation is fragile and not obvious. Accidentally > setting ".max_tx_ring" too high leads to a hard to track out-of- > bounds access and memory corruption. > > There is a small ambiguity on the meaning of "max_tx_ring": > - The highest ring, max=3 implies there are 4 rings (0, 1, 2, 3) > - The highest number to use for array indexing (there are 3 rings) > > Clarify this dependency by moving ".max_tx_ring" adjacent to the array > ".tcl2wbm_rbm_map", and name it "num_tx_rings". Use ARRAY_SIZE() > instead of #defines to initialize the length field. > > The ath11k_hw_hal_params_qca6390 uses fewer num_tx_rings than its map, > so use a constant to express the correct value. Add a static_assert() > to fail compilation if the constant is accidentally set too high. Text related to static_assert to be removed accordingly. > > The intent is to make the code easier to understand rather than fix > an existing bug. > > Signed-off-by: Alexandru Gagniuc <[email protected]> With the above minor comment addressed. Reviewed-by: Vasanthakumar Thiagarajan <[email protected]>