diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2020-12-09 16:54:41 -0800 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2021-01-04 13:35:15 -0800 |
commit | d756c74e6f6e76e99f8bffcea57833816dd335b6 (patch) | |
tree | 788bd5fec332f1dddfbbaeb1278477661fc30f80 | |
parent | 9d3a04853fe640e0eba2c0799c880b7dcf190219 (diff) | |
download | linux-d756c74e6f6e76e99f8bffcea57833816dd335b6.tar.bz2 |
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>
-rw-r--r-- | Documentation/RCU/Design/Requirements/Requirements.rst | 3 |
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 |