[PATCH] powerpc/machdep: warn when machine_is() used too early
Christophe Leroy
christophe.leroy at csgroup.eu
Sat Feb 11 18:46:36 AEDT 2023
Le 11/02/2023 à 00:56, Nathan Lynch via B4 Submission Endpoint a écrit :
> From: Nathan Lynch <nathanl at linux.ibm.com>
>
> machine_is() can't provide correct results before probe_machine() has
> run. Warn when it's used too early in boot.
>
> Signed-off-by: Nathan Lynch <nathanl at linux.ibm.com>
> ---
> Prompted by my attempts to do some pseries-specific setup during
> rtas_initialize() and being puzzled for a while that it wasn't
> working.
> ---
> arch/powerpc/include/asm/machdep.h | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
> index 378b8d5836a7..8c0a799d18cd 100644
> --- a/arch/powerpc/include/asm/machdep.h
> +++ b/arch/powerpc/include/asm/machdep.h
> @@ -220,11 +220,13 @@ extern struct machdep_calls *machine_id;
> EXPORT_SYMBOL(mach_##name); \
> struct machdep_calls mach_##name __machine_desc =
>
> -#define machine_is(name) \
> - ({ \
> - extern struct machdep_calls mach_##name \
> - __attribute__((weak)); \
> - machine_id == &mach_##name; \
> +#define machine_is(name) \
> + ({ \
> + extern struct machdep_calls mach_##name \
> + __attribute__((weak)); \
> + WARN(!machine_id, \
> + "machine_is() called before probe_machine()"); \
Is a WARN() really necessary ? WARN() is less optimised than WARN_ON(),
especially on PPC64.
This should never ever happen so a WARN_ON(!machine_id) should be
enough, the developper that hits it is able to go to the given file:line
and understand what happened.
> + machine_id == &mach_##name; \
> })
>
> static inline void log_error(char *buf, unsigned int err_type, int fatal)
>
> ---
> base-commit: 0bfb97203f5f300777624a2ad6f8f84aea3e8658
> change-id: 20230210-warn-on-machine-is-before-probe-machine-37515b1f43bb
>
> Best regards,
More information about the Linuxppc-dev
mailing list