[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