[PATCH] powerpc/machdep: warn when machine_is() used too early
Nathan Lynch via B4 Submission Endpoint
devnull+nathanl.linux.ibm.com at kernel.org
Sat Feb 11 10:56:28 AEDT 2023
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()"); \
+ 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,
--
Nathan Lynch <nathanl at linux.ibm.com>
More information about the Linuxppc-dev
mailing list