lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <20221210171141.1120123-2-guoren@kernel.org> Date: Sat, 10 Dec 2022 12:11:35 -0500 From: guoren@...nel.org To: arnd@...db.de, guoren@...nel.org, palmer@...osinc.com, tglx@...utronix.de, peterz@...radead.org, luto@...nel.org, conor.dooley@...rochip.com, heiko@...ech.de, jszhang@...nel.org, lazyparser@...il.com, falcon@...ylab.org, chenhuacai@...nel.org, apatel@...tanamicro.com, atishp@...shpatra.org, paul.walmsley@...ive.com, mark.rutland@....com, greentime.hu@...ive.com, andy.chiu@...ive.com, ben@...adent.org.uk, bjorn@...nel.org Cc: linux-arch@...r.kernel.org, linux-kernel@...r.kernel.org, linux-riscv@...ts.infradead.org, Lai Jiangshan <laijs@...ux.alibaba.com>, Borislav Petkov <bp@...en8.de>, Miguel Ojeda <ojeda@...nel.org>, Kees Cook <keescook@...omium.org>, Nick Desaulniers <ndesaulniers@...gle.com> Subject: [PATCH -next V11 1/7] compiler_types.h: Add __noinstr_section() for noinstr From: Lai Jiangshan <laijs@...ux.alibaba.com> Using __noinstr_section() doesn't automatically disable all instrumentations on the section. Inhibition for some instrumentations requires extra code. I.E. KPROBES explicitly avoids instrumenting on .noinstr.text. Cc: Borislav Petkov <bp@...en8.de> Reviewed-by: Miguel Ojeda <ojeda@...nel.org> Reviewed-by: Kees Cook <keescook@...omium.org> Suggested-by: Nick Desaulniers <ndesaulniers@...gle.com> Suggested-by: Peter Zijlstra <peterz@...radead.org> Tested-by: Jisheng Zhang <jszhang@...nel.org> Tested-by: Guo Ren <guoren@...nel.org> Signed-off-by: Guo Ren <guoren@...nel.org> Signed-off-by: Lai Jiangshan <laijs@...ux.alibaba.com> --- include/linux/compiler_types.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index eb0466236661..41e4faa4cd95 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -230,12 +230,19 @@ struct ftrace_likely_data { #define __no_sanitize_or_inline __always_inline #endif -/* Section for code which can't be instrumented at all */ -#define noinstr \ - noinline notrace __attribute((__section__(".noinstr.text"))) \ - __no_kcsan __no_sanitize_address __no_profile __no_sanitize_coverage \ +/* + * Using __noinstr_section() doesn't automatically disable all instrumentations + * on the section. Inhibition for some instrumentations requires extra code. + * I.E. KPROBES explicitly avoids instrumenting on .noinstr.text. + */ +#define __noinstr_section(section) \ + noinline notrace __section(section) __no_profile \ + __no_kcsan __no_sanitize_address __no_sanitize_coverage \ __no_sanitize_memory +/* Section for code which can't be instrumented at all */ +#define noinstr __noinstr_section(".noinstr.text") + #endif /* __KERNEL__ */ #endif /* __ASSEMBLY__ */ -- 2.36.1
Powered by blists - more mailing lists