diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2021-07-29 15:35:21 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2021-09-13 16:32:46 -0700 |
commit | 768f5d50e6ad88363291f96a2e230442b8d633bc (patch) | |
tree | fdf72cad0ea0561849f0fb9d3072001140be98f7 /kernel | |
parent | 2caebefb00f03b5ba13d44aa6cc3723759b43822 (diff) | |
download | linux-768f5d50e6ad88363291f96a2e230442b8d633bc.tar.gz linux-768f5d50e6ad88363291f96a2e230442b8d633bc.tar.bz2 linux-768f5d50e6ad88363291f96a2e230442b8d633bc.zip |
rcu: Simplify rcu_report_dead() call to rcu_report_exp_rdp()
Currently, rcu_report_dead() disables preemption across its call to
rcu_report_exp_rdp(), but this is pointless because interrupts are
already disabled by the caller. In addition, rcu_report_dead() computes
the address of the outgoing CPU's rcu_data structure, which is also
pointless because this address is already present in local variable rdp.
This commit therefore drops the preemption disabling and passes rdp
to rcu_report_exp_rdp().
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/rcu/tree.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 801075e36515..dc2968473593 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4294,9 +4294,7 @@ void rcu_report_dead(unsigned int cpu) do_nocb_deferred_wakeup(rdp); /* QS for any half-done expedited grace period. */ - preempt_disable(); - rcu_report_exp_rdp(this_cpu_ptr(&rcu_data)); - preempt_enable(); + rcu_report_exp_rdp(rdp); rcu_preempt_deferred_qs(current); /* Remove outgoing CPU from mask in the leaf rcu_node structure. */ |