objtool: Add straight-line-speculation validation
authorPeter Zijlstra <peterz@infradead.org>
Sat, 4 Dec 2021 13:43:42 +0000 (14:43 +0100)
committerBorislav Petkov <bp@suse.de>
Wed, 8 Dec 2021 18:26:50 +0000 (19:26 +0100)
commit1cc1e4c8aab4213bd4e6353dec2620476a233d6d
tree098107adb9d0272c25287606abad1b846b3595e3
parentb17c2baa305cccbd16bafa289fd743cc2db77966
objtool: Add straight-line-speculation validation

Teach objtool to validate the straight-line-speculation constraints:

 - speculation trap after indirect calls
 - speculation trap after RET

Notable: when an instruction is annotated RETPOLINE_SAFE, indicating
  speculation isn't a problem, also don't care about sls for that
  instruction.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20211204134908.023037659@infradead.org
tools/objtool/arch/x86/decode.c
tools/objtool/builtin-check.c
tools/objtool/check.c
tools/objtool/include/objtool/arch.h
tools/objtool/include/objtool/builtin.h