summaryrefslogtreecommitdiff
path: root/include/asm-generic
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2025-06-02 15:01:38 +0200
committerPeter Zijlstra <peterz@infradead.org>2025-11-21 11:21:31 +0100
commit30b82568b04e279d0d99482db036f1bdfecac522 (patch)
tree5a8009336511eb6fc61007d0bbe025008e82a509 /include/asm-generic
parentd292dbb5640c5b73b5ad889ae31fe889a2bf3137 (diff)
bug: Clean up CONFIG_GENERIC_BUG_RELATIVE_POINTERS
Three repeated CONFIG_GENERIC_BUG_RELATIVE_POINTERS #ifdefs right after one another yields unreadable code. Add a helper. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20251110115757.341703850@infradead.org
Diffstat (limited to 'include/asm-generic')
-rw-r--r--include/asm-generic/bug.h22
1 files changed, 8 insertions, 14 deletions
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index c7a1407b8669..9ee622ae0c9a 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -35,26 +35,20 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
#ifdef CONFIG_BUG
-#ifdef CONFIG_GENERIC_BUG
-struct bug_entry {
#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
- unsigned long bug_addr;
+#define BUG_REL(type, name) type name
#else
- signed int bug_addr_disp;
+#define BUG_REL(type, name) signed int name##_disp
#endif
+
+#ifdef CONFIG_GENERIC_BUG
+struct bug_entry {
+ BUG_REL(unsigned long, bug_addr);
#ifdef HAVE_ARCH_BUG_FORMAT
-#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
- const char *format;
-#else
- signed int format_disp;
-#endif
+ BUG_REL(const char *, format);
#endif
#ifdef CONFIG_DEBUG_BUGVERBOSE
-#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
- const char *file;
-#else
- signed int file_disp;
-#endif
+ BUG_REL(const char *, file);
unsigned short line;
#endif
unsigned short flags;