lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 334/917] x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
    Date
    From: Peter Zijlstra <peterz@infradead.org>

    [ Upstream commit 9af9dcf11bda3e2c0e24c1acaacb8685ad974e93 ]

    The asm_cpu_bringup_and_idle() function is required to push the return
    value on the stack in order to make ORC happy, but the only reason
    objtool doesn't complain is because of a happy accident.

    The thing is that asm_cpu_bringup_and_idle() doesn't return, so
    validate_branch() never terminates and falls through to the next
    function, which in the normal case is the hypercall_page. And that, as
    it happens, is 4095 NOPs and a RET.

    Make asm_cpu_bringup_and_idle() terminate on it's own, by making the
    function it calls as a dead-end. This way we no longer rely on what
    code happens to come after.

    Fixes: c3881eb58d56 ("x86/xen: Make the secondary CPU idle tasks reliable")
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Miroslav Benes <mbenes@suse.cz>
    Link: https://lore.kernel.org/r/20210624095147.693801717@infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/objtool/check.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/tools/objtool/check.c b/tools/objtool/check.c
    index 06b5c164ae931..8bffc004f4e53 100644
    --- a/tools/objtool/check.c
    +++ b/tools/objtool/check.c
    @@ -173,6 +173,7 @@ static bool __dead_end_function(struct objtool_file *file, struct symbol *func,
    "rewind_stack_do_exit",
    "kunit_try_catch_throw",
    "xen_start_kernel",
    + "cpu_bringup_and_idle",
    };

    if (!func)
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 00:40    [W:4.056 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site