Now that we have polled SRCU grace periods, a grace period can be
started by start_poll_synchronize_srcu() as well as call_srcu(),
synchronize_srcu(), and synchronize_srcu_expedited().  This commit
therefore calls out this new start_poll_synchronize_srcu() possibility
in the comment on the WARN_ON().

Signed-off-by: Paul E. McKenney <[email protected]>
---
 kernel/rcu/srcutree.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index bc4b58b0204e9..15dc22a8ff5ab 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -667,7 +667,10 @@ void cleanup_srcu_struct(struct srcu_struct *ssp)
                pr_info("%s: Active srcu_struct %p read state: %d gp state: 
%lu/%lu\n",
                        __func__, ssp, 
rcu_seq_state(READ_ONCE(sup->srcu_gp_seq)),
                        rcu_seq_current(&sup->srcu_gp_seq), 
sup->srcu_gp_seq_needed);
-               return; /* Caller forgot to stop doing call_srcu()? */
+               return; // Caller forgot to stop doing call_srcu()?
+                       // Or caller invoked start_poll_synchronize_srcu()
+                       // and then cleanup_srcu_struct() before that grace
+                       // period ended?
        }
        kfree(sup->node);
        sup->node = NULL;
-- 
2.40.1


Reply via email to