• Tiezhu Yang's avatar
    LoongArch: Put the body of play_dead() into arch_cpu_idle_dead() · c337c849
    Tiezhu Yang authored
    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: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
    Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
    c337c849
process.c 8.85 KB