]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rcu: Permit start_poll_synchronize_rcu*() with interrupts disabled
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 9 Oct 2024 18:00:42 +0000 (11:00 -0700)
committerFrederic Weisbecker <frederic@kernel.org>
Tue, 12 Nov 2024 20:44:30 +0000 (21:44 +0100)
The header comment for both start_poll_synchronize_rcu() and
start_poll_synchronize_rcu_full() state that interrupts must be enabled
when calling these two functions, and there is a lockdep assertion in
start_poll_synchronize_rcu_common() enforcing this restriction.  However,
there is no need for this restrictions, as can be seen in call_rcu(),
which does wakeups when interrupts are disabled.

This commit therefore removes the lockdep assertion and the comments.

Reported-by: Kent Overstreet <kent.overstreet@linux.dev>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
kernel/rcu/tree.c

index 38b121a773669d231da43536b09a4e3fa0afcfc8..13829cf38f526ccabbdaf11d9bf4718adc9455b6 100644 (file)
@@ -4194,7 +4194,6 @@ static void start_poll_synchronize_rcu_common(void)
        struct rcu_data *rdp;
        struct rcu_node *rnp;
 
-       lockdep_assert_irqs_enabled();
        local_irq_save(flags);
        rdp = this_cpu_ptr(&rcu_data);
        rnp = rdp->mynode;
@@ -4219,9 +4218,6 @@ static void start_poll_synchronize_rcu_common(void)
  * grace period has elapsed in the meantime.  If the needed grace period
  * is not already slated to start, notifies RCU core of the need for that
  * grace period.
- *
- * Interrupts must be enabled for the case where it is necessary to awaken
- * the grace-period kthread.
  */
 unsigned long start_poll_synchronize_rcu(void)
 {
@@ -4242,9 +4238,6 @@ EXPORT_SYMBOL_GPL(start_poll_synchronize_rcu);
  * grace period (whether normal or expedited) has elapsed in the meantime.
  * If the needed grace period is not already slated to start, notifies
  * RCU core of the need for that grace period.
- *
- * Interrupts must be enabled for the case where it is necessary to awaken
- * the grace-period kthread.
  */
 void start_poll_synchronize_rcu_full(struct rcu_gp_oldstate *rgosp)
 {