Add a new stacktool ignore macro, STACKTOOL_IGNORE_FUNC, which can be used to tell stacktool to skip validation of a function. Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> --- MAINTAINERS | 1 + arch/x86/kernel/vmlinux.lds.S | 5 ++++- include/linux/stacktool.h | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 include/linux/stacktool.h diff --git a/MAINTAINERS b/MAINTAINERS index 7ecbea9..80b26ec 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10190,6 +10190,7 @@ STACK METADATA VALIDATION M: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> S: Supported F: tools/stacktool/ +F: include/linux/stacktool.h STAGING SUBSYSTEM M: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index 4f19942..c08c283c 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -333,7 +333,10 @@ SECTIONS /* Sections to be discarded */ DISCARDS - /DISCARD/ : { *(.eh_frame) } + /DISCARD/ : { + *(.eh_frame) + *(__stacktool_ignore_*) + } } diff --git a/include/linux/stacktool.h b/include/linux/stacktool.h new file mode 100644 index 0000000..0d90db7 --- /dev/null +++ b/include/linux/stacktool.h @@ -0,0 +1,23 @@ +#ifndef _LINUX_STACKTOOL_H +#define _LINUX_STACKTOOL_H + +#ifdef CONFIG_STACK_VALIDATION +/* + * This C macro tells stacktool to ignore the function when doing stack + * metadata validation. It should only be used in special cases where you're + * 100% sure it won't affect the reliability of frame pointers and kernel stack + * traces. + * + * For more information, see tools/stacktool/Documentation/stack-validation.txt. + */ +#define STACKTOOL_IGNORE_FUNC(_func) \ + static void __used __section(__stacktool_ignore_func) \ + *__stacktool_ignore_func_##_func = _func + +#else /* !CONFIG_STACK_VALIDATION */ + +#define STACKTOOL_IGNORE_FUNC(_func) + +#endif /* CONFIG_STACK_VALIDATION */ + +#endif /* _LINUX_STACKTOOL_H */ -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html