Nathan Lynch via B4 Relay <devnull+nathanl.linux.ibm....@kernel.org> writes:
> From: Nathan Lynch <nath...@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.ku...@kernel.org> > Signed-off-by: Nathan Lynch <nath...@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