[PATCH 1/6] [v3] wifi: ath10k: cleanup CE ring initialization
Kalle Valo
kvalo at kernel.org
Wed Sep 20 06:23:16 PDT 2023
Dmitry Antipov <dmantipov at yandex.ru> writes:
> Commit 25d0dbcbd5c7 ("ath10k: split ce initialization and allocation")
> changes 'ath10k_ce_init_src_ring()' and 'ath10k_ce_init_dest_ring()'
> so these functions can't return -ENOMEM but always returns 0. This way
> both of them may be converted to 'void', and 'ath10k_ce_init_pipe()'
> may be simplified accordingly.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Signed-off-by: Dmitry Antipov <dmantipov at yandex.ru>
> ---
> v3: split to smaller units per Jeff's suggestion
> v2: change 'ath10k_ce_alloc_rri()' to return -ENOMEM in case
> of 'dma_alloc_coherent()' failure and fix error handling in
> 'ath10k_snoc_hif_power_up()'
[...]
> -static int ath10k_ce_init_src_ring(struct ath10k *ar,
> - unsigned int ce_id,
> - const struct ce_attr *attr)
> +static void ath10k_ce_init_src_ring(struct ath10k *ar,
> + unsigned int ce_id,
> + const struct ce_attr *attr)
I have on purpose avoided to use void functions in ath10k/ath11k/ath12k.
The problem is that if some of the functions return void and some of the
functions return int it's much harder to review the code. If most/all of
the functions return the same error value type as int it makes a lot
easier to read the code.
Is there a benefit from function returning void? Why do this in the
first place?
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath10k
mailing list