lkml.org 
[lkml]   [2017]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/4] objtool: Skip unreachable warnings for 'alt' instructions
    Date
    When a whitelisted function uses one of the ALTERNATIVE macros, it
    produces false positive warnings like:

    arch/x86/kvm/vmx.o: warning: objtool: .altinstr_replacement+0x0: unreachable instruction
    arch/x86/kvm/svm.o: warning: objtool: .altinstr_replacement+0x6e: unreachable instruction

    There's no easy way to whitelist alternative instructions, so instead
    just skip any 'unreachable' warnings associated with them.

    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    ---
    tools/objtool/check.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/tools/objtool/check.c b/tools/objtool/check.c
    index d07bf4a62b45..4f0c4aea8f6f 100644
    --- a/tools/objtool/check.c
    +++ b/tools/objtool/check.c
    @@ -1746,8 +1746,13 @@ static bool ignore_unreachable_insn(struct instruction *insn)
    /*
    * Ignore any unused exceptions. This can happen when a whitelisted
    * function has an exception table entry.
    + *
    + * Also ignore alternative replacement instructions. This can happen
    + * when a whitelisted function uses one of the ALTERNATIVE macros.
    */
    - if (!strcmp(insn->sec->name, ".fixup"))
    + if (!strcmp(insn->sec->name, ".fixup") ||
    + !strcmp(insn->sec->name, ".altinstr_replacement") ||
    + !strcmp(insn->sec->name, ".altinstr_aux"))
    return true;

    /*
    --
    2.13.3
    \
     
     \ /
      Last update: 2017-07-27 22:59    [W:3.938 / U:0.872 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site