]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bug: Clean up CONFIG_GENERIC_BUG_RELATIVE_POINTERS
authorPeter Zijlstra <peterz@infradead.org>
Mon, 2 Jun 2025 13:01:38 +0000 (15:01 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 21 Nov 2025 10:21:31 +0000 (11:21 +0100)
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
include/asm-generic/bug.h

index c7a1407b8669f51230ba9f8af59c3e82f11af067..9ee622ae0c9a0fab0d88ee2ca5cc1fcc13334ef7 100644 (file)
@@ -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;