Re: [tip: objtool/core] x86: Convert unreachable() to BUG()

From: Peter Zijlstra
Date: Mon Dec 16 2024 - 04:32:30 EST


On Mon, Dec 02, 2024 at 11:15:21AM -0000, tip-bot2 for Peter Zijlstra wrote:
> The following commit has been merged into the objtool/core branch of tip:
>
> Commit-ID: 2190966fbc14ca2cd4ea76eefeb96a47d8e390df
> Gitweb: https://git.kernel.org/tip/2190966fbc14ca2cd4ea76eefeb96a47d8e390df
> Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> AuthorDate: Thu, 28 Nov 2024 10:39:02 +01:00
> Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> CommitterDate: Mon, 02 Dec 2024 12:01:43 +01:00
>
> x86: Convert unreachable() to BUG()
>
> Avoid unreachable() as it can (and will in the absence of UBSAN)
> generate fallthrough code. Use BUG() so we get a UD2 trap (with
> unreachable annotation).
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> Link: https://lore.kernel.org/r/20241128094312.028316261@xxxxxxxxxxxxx


Urgh, one got lost:

vmlinux.o: warning: objtool: page_fault_oops() falls through to next function is_prefetch()

---
arch/x86/mm/fault.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index e6c469b323cc..ac52255fab01 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -678,7 +678,7 @@ page_fault_oops(struct pt_regs *regs, unsigned long error_code,
ASM_CALL_ARG3,
, [arg1] "r" (regs), [arg2] "r" (address), [arg3] "r" (&info));

- unreachable();
+ BUG();
}
#endif