x86: Mark stop_this_cpu() __noreturn
authorPeter Zijlstra <peterz@infradead.org>
Tue, 8 Mar 2022 15:30:47 +0000 (16:30 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 15 Mar 2022 09:32:43 +0000 (10:32 +0100)
vmlinux.o: warning: objtool: smp_stop_nmi_callback()+0x2b: unreachable instruction

0000 0000000000047cf0 <smp_stop_nmi_callback>:
...
0026    47d16:  e8 00 00 00 00          call   47d1b <smp_stop_nmi_callback+0x2b>       47d17: R_X86_64_PLT32   stop_this_cpu-0x4
002b    47d1b:  b8 01 00 00 00          mov    $0x1,%eax

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154319.290905453@infradead.org
arch/x86/include/asm/processor.h
arch/x86/kernel/process.c
tools/objtool/check.c

index 2c5f12a..dd34100 100644 (file)
@@ -835,7 +835,7 @@ bool xen_set_default_idle(void);
 #define xen_set_default_idle 0
 #endif
 
-void stop_this_cpu(void *dummy);
+void __noreturn stop_this_cpu(void *dummy);
 void microcode_check(void);
 
 enum l1tf_mitigations {
index 81d8ef0..a057a5c 100644 (file)
@@ -747,7 +747,7 @@ bool xen_set_default_idle(void)
 }
 #endif
 
-void stop_this_cpu(void *dummy)
+void __noreturn stop_this_cpu(void *dummy)
 {
        local_irq_disable();
        /*
index 0e0e5b5..c3ddcec 100644 (file)
@@ -181,6 +181,7 @@ static bool __dead_end_function(struct objtool_file *file, struct symbol *func,
                "kunit_try_catch_throw",
                "xen_start_kernel",
                "cpu_bringup_and_idle",
+               "stop_this_cpu",
        };
 
        if (!func)