rcu: define __rcu address space modifier for sparse
This commit provides definitions for the __rcu annotation defined earlier. This annotation permits sparse to check for correct use of RCU-protected pointers. If a pointer that is annotated with __rcu is accessed directly (as opposed to via rcu_dereference(), rcu_assign_pointer(), or one of their variants), sparse can be made to complain. To enable such complaints, use the new default-disabled CONFIG_SPARSE_RCU_POINTER kernel configuration option. Please note that these sparse complaints are intended to be a debugging aid, -not- a code-style-enforcement mechanism. There are special rcu_dereference_protected() and rcu_access_pointer() accessors for use when RCU read-side protection is not required, for example, when no other CPU has access to the data structure in question or while the current CPU hold the update-side lock. This patch also updates a number of docbook comments that were showing their age. Signed-off-by:Arnd Bergmann <arnd@arndb.de> Signed-off-by:
Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Christopher Li <sparse@chrisli.org> Reviewed-by:
Josh Triplett <josh@joshtriplett.org>
Showing
- include/linux/compiler.h 4 additions, 0 deletionsinclude/linux/compiler.h
- include/linux/rcupdate.h 213 additions, 139 deletionsinclude/linux/rcupdate.h
- include/linux/srcu.h 23 additions, 4 deletionsinclude/linux/srcu.h
- kernel/rcupdate.c 4 additions, 2 deletionskernel/rcupdate.c
- lib/Kconfig.debug 13 additions, 0 deletionslib/Kconfig.debug
Please register or sign in to comment