Re: [PATCH -rcu] asm-generic, kcsan: Add KCSAN instrumentation for bitops

From: Arnd Bergmann
Date: Wed Jan 15 2020 - 14:28:00 EST


On Wed, Jan 15, 2020 at 5:58 PM Marco Elver <elver@xxxxxxxxxx> wrote:
> * set_bit - Atomically set a bit in memory
> @@ -26,6 +27,7 @@
> static inline void set_bit(long nr, volatile unsigned long *addr)
> {
> kasan_check_write(addr + BIT_WORD(nr), sizeof(long));
> + kcsan_check_atomic_write(addr + BIT_WORD(nr), sizeof(long));
> arch_set_bit(nr, addr);
> }

It looks like you add a kcsan_check_atomic_write or kcsan_check_write directly
next to almost any instance of kasan_check_write().

Are there any cases where we actually just need one of the two but not the
other? If not, maybe it's better to rename the macro and have it do both things
as needed?

Arnd