[PATCH v3] wifi: ath11k: move .max_tx_ring to struct ath11k_hw_hal_params
Vasanthakumar Thiagarajan
vasanthakumar.thiagarajan at oss.qualcomm.com
Mon Jan 12 23:00:06 PST 2026
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 <mr.nuke.me at gmail.com>
With the above minor comment addressed.
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan at oss.qualcomm.com>
More information about the ath11k
mailing list