[PATCH v3] wifi: ath11k: move .max_tx_ring to struct ath11k_hw_hal_params
Jeff Johnson
jeff.johnson at oss.qualcomm.com
Wed Jan 14 09:24:19 PST 2026
On 1/12/2026 11:00 PM, Vasanthakumar Thiagarajan wrote:
>
>
> 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.
I removed the last sentence in 'pending', please check:
https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?h=pending&id=26bb149b5e011b0f73f7b74421589cbd38e3304b
>
>>
>> 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