| Date | Fri, 18 Feb 2022 17:49:08 +0100 | From | Peter Zijlstra <> | Subject | [PATCH 06/29] x86/ibt: Add ANNOTATE_NOENDBR |
| |
In order to have objtool warn about code references to !ENDBR instruction, we need an annotation to allow this for non-coontrol-flow instances -- consider text range checks, text patching, or return trampolines etc.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- arch/x86/include/asm/linkage.h | 11 +++++++++++ include/linux/instruction_pointer.h | 5 +++++ include/linux/objtool.h | 13 +++++++++++++ 3 files changed, 29 insertions(+)
--- a/include/linux/objtool.h +++ b/include/linux/objtool.h @@ -78,6 +78,12 @@ struct unwind_hint { #define STACK_FRAME_NON_STANDARD_FP(func) #endif +#define ANNOTATE_NOENDBR \ + "986: \n\t" \ + ".pushsection .discard.noendbr\n\t" \ + _ASM_PTR " 986b\n\t" \ + ".popsection\n\t" + #else /* __ASSEMBLY__ */ /* @@ -130,6 +136,13 @@ struct unwind_hint { .popsection .endm +.macro ANNOTATE_NOENDBR +.Lhere_\@: + .pushsection .discard.noendbr + .quad .Lhere_\@ + .popsection +.endm + #endif /* __ASSEMBLY__ */ #else /* !CONFIG_STACK_VALIDATION */
|