Message ID | 20211214162050.660953-22-glider@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add KernelMemorySanitizer infrastructure | expand |
On Tue, Dec 14, 2021 at 05:20:28PM +0100, Alexander Potapenko wrote: > noinstr functions should never be instrumented, so make KMSAN skip them > by applying the __no_sanitize_memory attribute. To make this easier to review, it would be nice if this patch were moved earlier, grouped with patches: * 7: "compiler_attributes.h: add __disable_sanitizer_instrumentation" * 9: "kmsan: introduce __no_sanitize_memory and __no_kmsan_checks" ... since that way a reviewer will spot them all in one go, rather than having to jump around the series, and then any later patch in the series can rely on all of these attributes, including `noinstr`. Mark. > > Signed-off-by: Alexander Potapenko <glider@google.com> > --- > Link: https://linux-review.googlesource.com/id/I3c9abe860b97b49bc0c8026918b17a50448dec0d > --- > include/linux/compiler_types.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h > index 1d32f4c03c9ef..37b82564e93e5 100644 > --- a/include/linux/compiler_types.h > +++ b/include/linux/compiler_types.h > @@ -210,7 +210,8 @@ struct ftrace_likely_data { > /* 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 > + __no_kcsan __no_sanitize_address __no_profile __no_sanitize_coverage \ > + __no_sanitize_memory > > #endif /* __KERNEL__ */ > > -- > 2.34.1.173.g76aa8bc2d0-goog >
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index 1d32f4c03c9ef..37b82564e93e5 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -210,7 +210,8 @@ struct ftrace_likely_data { /* 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 + __no_kcsan __no_sanitize_address __no_profile __no_sanitize_coverage \ + __no_sanitize_memory #endif /* __KERNEL__ */
noinstr functions should never be instrumented, so make KMSAN skip them by applying the __no_sanitize_memory attribute. Signed-off-by: Alexander Potapenko <glider@google.com> --- Link: https://linux-review.googlesource.com/id/I3c9abe860b97b49bc0c8026918b17a50448dec0d --- include/linux/compiler_types.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)