lkml.org 
[lkml]   [2022]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.15 106/188] x86/mce: Mark mce_end() noinstr
    Date
    From: Borislav Petkov <bp@suse.de>

    [ Upstream commit b4813539d37fa31fed62cdfab7bd2dd8929c5b2e ]

    It is called by the #MC handler which is noinstr.

    Fixes

    vmlinux.o: warning: objtool: do_machine_check()+0xbd6: call to memset() leaves .noinstr.text section

    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/20211208111343.8130-9-bp@alien8.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/kernel/cpu/mce/core.c | 14 +++++++++++---
    1 file changed, 11 insertions(+), 3 deletions(-)

    diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
    index c5a1022463bcc..c37a0bcf2744b 100644
    --- a/arch/x86/kernel/cpu/mce/core.c
    +++ b/arch/x86/kernel/cpu/mce/core.c
    @@ -1081,10 +1081,13 @@ static int mce_start(int *no_way_out)
    * Synchronize between CPUs after main scanning loop.
    * This invokes the bulk of the Monarch processing.
    */
    -static int mce_end(int order)
    +static noinstr int mce_end(int order)
    {
    - int ret = -1;
    u64 timeout = (u64)mca_cfg.monarch_timeout * NSEC_PER_USEC;
    + int ret = -1;
    +
    + /* Allow instrumentation around external facilities. */
    + instrumentation_begin();

    if (!timeout)
    goto reset;
    @@ -1128,7 +1131,8 @@ static int mce_end(int order)
    /*
    * Don't reset anything. That's done by the Monarch.
    */
    - return 0;
    + ret = 0;
    + goto out;
    }

    /*
    @@ -1144,6 +1148,10 @@ static int mce_end(int order)
    * Let others run again.
    */
    atomic_set(&mce_executing, 0);
    +
    +out:
    + instrumentation_end();
    +
    return ret;
    }

    --
    2.34.1
    \
     
     \ /
      Last update: 2022-01-18 04:10    [W:4.353 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site