OSDN Git Service

rcu-tasks: Simplify trc_read_check_handler() atomic operations
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 28 Jul 2021 17:53:41 +0000 (10:53 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 15 Sep 2021 18:37:50 +0000 (11:37 -0700)
commit96017bf9039763a2e02dcc6adaa18592cd73a39d
treedd2be468a0f212db7625eb7f3735333cfd137a30
parentcbe0d8d91415c9692fe88191940d98952b6855d9
rcu-tasks: Simplify trc_read_check_handler() atomic operations

Currently, trc_wait_for_one_reader() atomically increments
the trc_n_readers_need_end counter before sending the IPI
invoking trc_read_check_handler().  All failure paths out of
trc_read_check_handler() and also from the smp_call_function_single()
within trc_wait_for_one_reader() must carefully atomically decrement
this counter.  This is more complex than it needs to be.

This commit therefore simplifies things and saves a few lines of
code by dispensing with the atomic decrements in favor of having
trc_read_check_handler() do the atomic increment only in the success case.
In theory, this represents no change in functionality.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/tasks.h