Commit d756c74e authored by Paul E. McKenney's avatar Paul E. McKenney

doc: Update RCU requirements RCU_INIT_POINTER() description

Back in the day, RCU_INIT_POINTER() was the only way to avoid
memory-barrier instructions while storing NULL to an RCU-protected
pointer.  Fortunately, in 2016, rcu_assign_pointer() started checking for
compile-time NULL pointers and omitting the memory-barrier instructions in
that case.  Unfortunately, RCU's Requirements.rst document was not updated
accordingly.  This commit therefore at long last carries out that update.

Fixes: 3a37f727 ("rcu: No ordering for rcu_assign_pointer() of NULL")
Link: https://lore.kernel.org/lkml/20201209230755.GV7338@casper.infradead.org/Reported-by: default avatarMatthew Wilcox <willy@infradead.org>
Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 9d3a0485
...@@ -1668,8 +1668,7 @@ against mishaps and misuse: ...@@ -1668,8 +1668,7 @@ against mishaps and misuse:
this purpose. this purpose.
#. It is not necessary to use rcu_assign_pointer() when creating #. It is not necessary to use rcu_assign_pointer() when creating
linked structures that are to be published via a single external linked structures that are to be published via a single external
pointer. The RCU_INIT_POINTER() macro is provided for this task pointer. The RCU_INIT_POINTER() macro is provided for this task.
and also for assigning ``NULL`` pointers at runtime.
This not a hard-and-fast list: RCU's diagnostic capabilities will This not a hard-and-fast list: RCU's diagnostic capabilities will
continue to be guided by the number and type of usage bugs found in continue to be guided by the number and type of usage bugs found in
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment