rcu: Fixup noinstr warnings
authorPeter Zijlstra <peterz@infradead.org>
Mon, 15 Jun 2020 16:24:27 +0000 (18:24 +0200)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 25 Jun 2020 15:24:32 +0000 (08:24 -0700)
commitb58e733fd774f3f4b49d9e7640d172a57e35200e
tree026b9aa5ed3a6b24ed3b65300d2e2a2b2838af85
parent5faafd5685764e4d75376aceac91fdf75b3b16f8
rcu: Fixup noinstr warnings

A KCSAN build revealed we have explicit annoations through atomic_*()
usage, switch to arch_atomic_*() for the respective functions.

vmlinux.o: warning: objtool: rcu_nmi_exit()+0x4d: call to __kcsan_check_access() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_dynticks_eqs_enter()+0x25: call to __kcsan_check_access() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_nmi_enter()+0x4f: call to __kcsan_check_access() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_dynticks_eqs_exit()+0x2a: call to __kcsan_check_access() leaves .noinstr.text section
vmlinux.o: warning: objtool: __rcu_is_watching()+0x25: call to __kcsan_check_access() leaves .noinstr.text section

Additionally, without the NOP in instrumentation_begin(), objtool would
not detect the lack of the 'else instrumentation_begin();' branch in
rcu_nmi_enter().

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/compiler.h
kernel/rcu/tree.c