diff options
author | 2023-08-25 23:40:38 +0800 | |
---|---|---|
committer | 2023-08-25 23:40:38 +0800 | |
commit | c337c849ab528241897ddfb6f334912ead0bfd66 (patch) | |
tree | 5d6d2b56026b92f6bed77c30b0a2b810657560bc /arch/loongarch/include | |
parent | LoongArch: Add identifier names to arguments of die() declaration (diff) | |
download | linux-c337c849ab528241897ddfb6f334912ead0bfd66.tar.gz linux-c337c849ab528241897ddfb6f334912ead0bfd66.tar.bz2 linux-c337c849ab528241897ddfb6f334912ead0bfd66.zip |
LoongArch: Put the body of play_dead() into arch_cpu_idle_dead()
The initial aim is to silence the following objtool warning:
arch/loongarch/kernel/process.o: warning: objtool: arch_cpu_idle_dead() falls through to next function start_thread()
According to tools/objtool/Documentation/objtool.txt, this is because
the last instruction of arch_cpu_idle_dead() is a call to a noreturn
function play_dead(). In order to silence the warning, one simple way
is to add the noreturn function play_dead() to objtool's hard-coded
global_noreturns array, that is to say, just put "NORETURN(play_dead)"
into tools/objtool/noreturns.h, it works well.
But I noticed that play_dead() is only defined once and only called by
arch_cpu_idle_dead(), so put the body of play_dead() into the caller
arch_cpu_idle_dead(), then remove the noreturn function play_dead() is
an alternative way which can reduce the overhead of the function call
at the same time.
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'arch/loongarch/include')
-rw-r--r-- | arch/loongarch/include/asm/smp.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/loongarch/include/asm/smp.h b/arch/loongarch/include/asm/smp.h index 416b653bccb4..66ecb480c894 100644 --- a/arch/loongarch/include/asm/smp.h +++ b/arch/loongarch/include/asm/smp.h @@ -98,8 +98,6 @@ static inline void __cpu_die(unsigned int cpu) { loongson_cpu_die(cpu); } - -extern void __noreturn play_dead(void); #endif #endif /* __ASM_SMP_H */ |