Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93728af0 authored by Michalis Kokologiannakis's avatar Michalis Kokologiannakis Committed by Paul E. McKenney
Browse files

doc: Update the comparisons rule in rcu_dereference.txt



When an RCU-protected pointer is fetched but never dereferenced
rcu_access_pointer() should be used in place of rcu_dereference().
This commit explicitly records this very fact in Documentation/
RCU/rcu_dereference.txt, in order to prevent the usage of
rcu_dereference() in comparisons.

Signed-off-by: default avatarMichalis Kokologiannakis <mixaskok@gmail.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent 066bb1c8
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -138,6 +138,15 @@ o Be very careful about comparing pointers obtained from
		This sort of comparison occurs frequently when scanning
		RCU-protected circular linked lists.

		Note that if checks for being within an RCU read-side
		critical section are not required and the pointer is never
		dereferenced, rcu_access_pointer() should be used in place
		of rcu_dereference(). The rcu_access_pointer() primitive
		does not require an enclosing read-side critical section,
		and also omits the smp_read_barrier_depends() included in
		rcu_dereference(), which in turn should provide a small
		performance gain in some CPUs (e.g., the DEC Alpha).

	o	The comparison is against a pointer that references memory
		that was initialized "a long time ago."  The reason
		this is safe is that even if misordering occurs, the