diff options
author | Frederic Weisbecker <frederic@kernel.org> | 2023-11-15 22:11:27 +0300 |
---|---|---|
committer | Boqun Feng <boqun.feng@gmail.com> | 2024-02-14 18:50:44 +0300 |
commit | ca16265aaf9d357035000833636dcddbfafacac3 (patch) | |
tree | e73b5e494561eb2df838235be9f5c86116864763 /drivers/fpga/xilinx-selectmap.c | |
parent | 41bccc98fb7931d63d03f326a746ac4d429c1dd3 (diff) | |
download | linux-ca16265aaf9d357035000833636dcddbfafacac3.tar.xz |
rcu/nocb: Remove needless LOAD-ACQUIRE
The LOAD-ACQUIRE access performed on rdp->nocb_cb_sleep advertizes
ordering callback execution against grace period completion. However
this is contradicted by the following:
* This LOAD-ACQUIRE doesn't pair with anything. The only counterpart
barrier that can be found is the smp_mb() placed after callbacks
advancing in nocb_gp_wait(). However the barrier is placed _after_
->nocb_cb_sleep write.
* Callbacks can be concurrently advanced between the LOAD-ACQUIRE on
->nocb_cb_sleep and the call to rcu_segcblist_extract_done_cbs() in
rcu_do_batch(), making any ordering based on ->nocb_cb_sleep broken.
* Both rcu_segcblist_extract_done_cbs() and rcu_advance_cbs() are called
under the nocb_lock, the latter hereby providing already the desired
ACQUIRE semantics.
Therefore it is safe to access ->nocb_cb_sleep with a simple compiler
barrier.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Diffstat (limited to 'drivers/fpga/xilinx-selectmap.c')
0 files changed, 0 insertions, 0 deletions