[PATCH v4 01/13] powerpc/rtas: Add for_each_rtas_function() iterator
Aneesh Kumar K.V (IBM)
aneesh.kumar at kernel.org
Mon Nov 20 19:07:06 AEDT 2023
Nathan Lynch via B4 Relay <devnull+nathanl.linux.ibm.com at kernel.org>
writes:
> From: Nathan Lynch <nathanl at linux.ibm.com>
>
> Add a convenience macro for iterating over every element of the
> internal function table and convert the one site that can use it. An
> additional user of the macro is anticipated in changes to follow.
>
Reviewed-by: Aneesh Kumar K.V (IBM) <aneesh.kumar at kernel.org>
> Signed-off-by: Nathan Lynch <nathanl at linux.ibm.com>
> ---
> arch/powerpc/kernel/rtas.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
> index eddc031c4b95..1ad1869e2e96 100644
> --- a/arch/powerpc/kernel/rtas.c
> +++ b/arch/powerpc/kernel/rtas.c
> @@ -454,6 +454,11 @@ static struct rtas_function rtas_function_table[] __ro_after_init = {
> },
> };
>
> +#define for_each_rtas_function(funcp) \
> + for (funcp = &rtas_function_table[0]; \
> + funcp < &rtas_function_table[ARRAY_SIZE(rtas_function_table)]; \
> + ++funcp)
> +
> /*
> * Nearly all RTAS calls need to be serialized. All uses of the
> * default rtas_args block must hold rtas_lock.
> @@ -525,10 +530,10 @@ static DEFINE_XARRAY(rtas_token_to_function_xarray);
>
> static int __init rtas_token_to_function_xarray_init(void)
> {
> + const struct rtas_function *func;
> int err = 0;
>
> - for (size_t i = 0; i < ARRAY_SIZE(rtas_function_table); ++i) {
> - const struct rtas_function *func = &rtas_function_table[i];
> + for_each_rtas_function(func) {
> const s32 token = func->token;
>
> if (token == RTAS_UNKNOWN_SERVICE)
>
> --
> 2.41.0
More information about the Linuxppc-dev
mailing list