unreachable: Unify

Since barrier_before_unreachable() is empty for !GCC it is trivial to
unify the two definitions. Less is more.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/20241128094311.924381359@infradead.org
This commit is contained in:
Peter Zijlstra 2024-11-28 10:39:01 +01:00
parent bb81700674
commit c837de3810
2 changed files with 7 additions and 15 deletions

View File

@ -52,18 +52,6 @@
*/ */
#define barrier_before_unreachable() asm volatile("") #define barrier_before_unreachable() asm volatile("")
/*
* Mark a position in code as unreachable. This can be used to
* suppress control flow warnings after asm blocks that transfer
* control elsewhere.
*/
#define unreachable() \
do { \
annotate_unreachable(); \
barrier_before_unreachable(); \
__builtin_unreachable(); \
} while (0)
#if defined(CONFIG_ARCH_USE_BUILTIN_BSWAP) #if defined(CONFIG_ARCH_USE_BUILTIN_BSWAP)
#define __HAVE_BUILTIN_BSWAP32__ #define __HAVE_BUILTIN_BSWAP32__
#define __HAVE_BUILTIN_BSWAP64__ #define __HAVE_BUILTIN_BSWAP64__

View File

@ -141,12 +141,16 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
#define __annotate_jump_table #define __annotate_jump_table
#endif /* CONFIG_OBJTOOL */ #endif /* CONFIG_OBJTOOL */
#ifndef unreachable /*
# define unreachable() do { \ * Mark a position in code as unreachable. This can be used to
* suppress control flow warnings after asm blocks that transfer
* control elsewhere.
*/
#define unreachable() do { \
annotate_unreachable(); \ annotate_unreachable(); \
barrier_before_unreachable(); \
__builtin_unreachable(); \ __builtin_unreachable(); \
} while (0) } while (0)
#endif
/* /*
* KENTRY - kernel entry point * KENTRY - kernel entry point