diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2021-02-10 21:16:44 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2021-02-10 21:16:44 +0100 |
commit | 4dc1d28ce29086aaa38b8bc8b20329a21ba5df85 (patch) | |
tree | 709c7b652df5e4efe24d301b47130f38987e881e /include | |
parent | x86/entry: Remove put_ret_addr_in_rdi THUNK macro argument (diff) | |
parent | objtool: Support stack-swizzle (diff) | |
download | linux-4dc1d28ce29086aaa38b8bc8b20329a21ba5df85.tar.xz linux-4dc1d28ce29086aaa38b8bc8b20329a21ba5df85.zip |
Merge branch 'objtool/core' into x86/entry
to base the irq stack modifications on.
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/objtool.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/linux/objtool.h b/include/linux/objtool.h index 577f51436cf9..7e72d975cb76 100644 --- a/include/linux/objtool.h +++ b/include/linux/objtool.h @@ -29,11 +29,14 @@ struct unwind_hint { * * UNWIND_HINT_TYPE_REGS_PARTIAL: Used in entry code to indicate that * sp_reg+sp_offset points to the iret return frame. + * + * UNWIND_HINT_FUNC: Generate the unwind metadata of a callable function. + * Useful for code which doesn't have an ELF function annotation. */ #define UNWIND_HINT_TYPE_CALL 0 #define UNWIND_HINT_TYPE_REGS 1 #define UNWIND_HINT_TYPE_REGS_PARTIAL 2 -#define UNWIND_HINT_TYPE_RET_OFFSET 3 +#define UNWIND_HINT_TYPE_FUNC 3 #ifdef CONFIG_STACK_VALIDATION @@ -109,6 +112,12 @@ struct unwind_hint { .popsection .endm +.macro STACK_FRAME_NON_STANDARD func:req + .pushsection .discard.func_stack_frame_non_standard, "aw" + .long \func - . + .popsection +.endm + #endif /* __ASSEMBLY__ */ #else /* !CONFIG_STACK_VALIDATION */ @@ -122,6 +131,8 @@ struct unwind_hint { #define ANNOTATE_INTRA_FUNCTION_CALL .macro UNWIND_HINT sp_reg:req sp_offset=0 type:req end=0 .endm +.macro STACK_FRAME_NON_STANDARD func:req +.endm #endif #endif /* CONFIG_STACK_VALIDATION */ |