On Tue, 22 Oct 2019 at 14:33, Mark Rutland <mark.rutland@xxxxxxx> wrote: > > On Thu, Oct 17, 2019 at 04:13:04PM +0200, Marco Elver wrote: > > This adds KCSAN instrumentation to atomic-instrumented.h. > > > > Signed-off-by: Marco Elver <elver@xxxxxxxxxx> > > --- > > v2: > > * Use kcsan_check{,_atomic}_{read,write} instead of > > kcsan_check_{access,atomic}. > > * Introduce __atomic_check_{read,write} [Suggested by Mark Rutland]. > > --- > > include/asm-generic/atomic-instrumented.h | 393 +++++++++++----------- > > scripts/atomic/gen-atomic-instrumented.sh | 17 +- > > 2 files changed, 218 insertions(+), 192 deletions(-) > > The script changes and generated code look fine to me, so FWIW: > > Reviewed-by: Mark Rutland <mark.rutland@xxxxxxx> Great, thank you Mark! > Thanks, > Mark. > > > diff --git a/scripts/atomic/gen-atomic-instrumented.sh b/scripts/atomic/gen-atomic-instrumented.sh > > index e09812372b17..8b8b2a6f8d68 100755 > > --- a/scripts/atomic/gen-atomic-instrumented.sh > > +++ b/scripts/atomic/gen-atomic-instrumented.sh > > @@ -20,7 +20,7 @@ gen_param_check() > > # We don't write to constant parameters > > [ ${type#c} != ${type} ] && rw="read" > > > > - printf "\tkasan_check_${rw}(${name}, sizeof(*${name}));\n" > > + printf "\t__atomic_check_${rw}(${name}, sizeof(*${name}));\n" > > } > > > > #gen_param_check(arg...) > > @@ -107,7 +107,7 @@ cat <<EOF > > #define ${xchg}(ptr, ...) \\ > > ({ \\ > > typeof(ptr) __ai_ptr = (ptr); \\ > > - kasan_check_write(__ai_ptr, ${mult}sizeof(*__ai_ptr)); \\ > > + __atomic_check_write(__ai_ptr, ${mult}sizeof(*__ai_ptr)); \\ > > arch_${xchg}(__ai_ptr, __VA_ARGS__); \\ > > }) > > EOF > > @@ -148,6 +148,19 @@ cat << EOF > > > > #include <linux/build_bug.h> > > #include <linux/kasan-checks.h> > > +#include <linux/kcsan-checks.h> > > + > > +static inline void __atomic_check_read(const volatile void *v, size_t size) > > +{ > > + kasan_check_read(v, size); > > + kcsan_check_atomic_read(v, size); > > +} > > + > > +static inline void __atomic_check_write(const volatile void *v, size_t size) > > +{ > > + kasan_check_write(v, size); > > + kcsan_check_atomic_write(v, size); > > +} > > > > EOF > > > > -- > > 2.23.0.866.gb869b98d4c-goog > >