aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/RCU/Design
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2020-12-09 16:54:41 -0800
committerPaul E. McKenney <paulmck@kernel.org>2021-01-04 13:35:15 -0800
commitd756c74e6f6e76e99f8bffcea57833816dd335b6 (patch)
tree788bd5fec332f1dddfbbaeb1278477661fc30f80 /Documentation/RCU/Design
parentdocs: Fix typos and drop/fix dead links in RCU documentation (diff)
downloadlinux-dev-d756c74e6f6e76e99f8bffcea57833816dd335b6.tar.xz
linux-dev-d756c74e6f6e76e99f8bffcea57833816dd335b6.zip
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: 3a37f7275cda ("rcu: No ordering for rcu_assign_pointer() of NULL") Link: https://lore.kernel.org/lkml/20201209230755.GV7338@casper.infradead.org/ Reported-by: Matthew Wilcox <willy@infradead.org> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'Documentation/RCU/Design')
-rw-r--r--Documentation/RCU/Design/Requirements/Requirements.rst3
1 files changed, 1 insertions, 2 deletions
diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst b/Documentation/RCU/Design/Requirements/Requirements.rst
index f32f8faddc7d..65c7839114a5 100644
--- a/Documentation/RCU/Design/Requirements/Requirements.rst
+++ b/Documentation/RCU/Design/Requirements/Requirements.rst
@@ -1668,8 +1668,7 @@ against mishaps and misuse:
this purpose.
#. It is not necessary to use rcu_assign_pointer() when creating
linked structures that are to be published via a single external
- pointer. The RCU_INIT_POINTER() macro is provided for this task
- and also for assigning ``NULL`` pointers at runtime.
+ pointer. The RCU_INIT_POINTER() macro is provided for this task.
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