[PATCH v2 00/24] cpu,sched: Mark arch_cpu_idle_dead() __noreturn

Josh Poimboeuf
2023-02-14T07:07:33Z

v2:
- make arch_call_rest_init() and rest_init() __noreturn
- make objtool 'global_returns' work for weak functions
- rebase on tip/objtool/core with dependencies merged in (mingo)
- add acks

v1.1:
- add __noreturn to all arch_cpu_idle_dead() implementations (mpe)

Josh Poimboeuf (24):
alpha/cpu: Expose arch_cpu_idle_dead()'s prototype declaration
alpha/cpu: Make sure arch_cpu_idle_dead() doesn't return
arm/cpu: Make sure arch_cpu_idle_dead() doesn't return
arm64/cpu: Mark cpu_die() __noreturn
csky/cpu: Make sure arch_cpu_idle_dead() doesn't return
ia64/cpu: Mark play_dead() __noreturn
loongarch/cpu: Make sure play_dead() doesn't return
loongarch/cpu: Mark play_dead() __noreturn
mips/cpu: Expose play_dead()'s prototype definition
mips/cpu: Make sure play_dead() doesn't return
mips/cpu: Mark play_dead() __noreturn
powerpc/cpu: Mark start_secondary_resume() __noreturn
sh/cpu: Make sure play_dead() doesn't return
sh/cpu: Mark play_dead() __noreturn
sh/cpu: Expose arch_cpu_idle_dead()'s prototype definition
sparc/cpu: Mark cpu_play_dead() __noreturn
x86/cpu: Make sure play_dead() doesn't return
x86/cpu: Mark play_dead() __noreturn
xtensa/cpu: Make sure cpu_die() doesn't return
xtensa/cpu: Mark cpu_die() __noreturn
sched/idle: Make sure weak version of arch_cpu_idle_dead() doesn't
return
objtool: Include weak functions in 'global_noreturns' check
init: Make arch_call_rest_init() and rest_init() __noreturn
sched/idle: Mark arch_cpu_idle_dead() __noreturn

arch/alpha/kernel/process.c | 4 +++-
arch/arm/kernel/smp.c | 4 +++-
arch/arm64/include/asm/smp.h | 2 +-
arch/arm64/kernel/process.c | 2 +-
arch/csky/kernel/smp.c | 4 +++-
arch/ia64/kernel/process.c | 6 +++---
arch/loongarch/include/asm/smp.h | 2 +-
arch/loongarch/kernel/process.c | 2 +-
arch/loongarch/kernel/smp.c | 2 +-
arch/mips/include/asm/smp.h | 2 +-
arch/mips/kernel/process.c | 2 +-
arch/mips/kernel/smp-bmips.c | 3 +++
arch/mips/loongson64/smp.c | 1 +
arch/parisc/kernel/process.c | 2 +-
arch/powerpc/include/asm/smp.h | 2 +-
arch/powerpc/kernel/smp.c | 2 +-
arch/riscv/kernel/cpu-hotplug.c | 2 +-
arch/s390/kernel/idle.c | 2 +-
arch/s390/kernel/setup.c | 2 +-
arch/sh/include/asm/smp-ops.h | 5 +++--
arch/sh/kernel/idle.c | 3 ++-
arch/sparc/include/asm/smp_64.h | 2 +-
arch/sparc/kernel/process_64.c | 2 +-
arch/x86/include/asm/smp.h | 3 ++-
arch/x86/kernel/process.c | 4 ++--
arch/xtensa/include/asm/smp.h | 2 +-
arch/xtensa/kernel/smp.c | 4 +++-
include/linux/cpu.h | 2 +-
include/linux/start_kernel.h | 4 ++--
init/main.c | 4 ++--
kernel/sched/idle.c | 2 +-
tools/objtool/check.c | 11 +++++++----
32 files changed, 57 insertions(+), 39 deletions(-)

--
2.39.1