Atomic SRCU does not use the srcu_node combining tree. Exclude it
from the SRCU_SIZING_IS_TORTURE() transition in
srcu_torture_stats_print(), and warn if such a transition is requested.

Signed-off-by: Kunwu Chan <[email protected]>
---
Changes:
-add warn on an invalid atomic SRCU sizing configuration.
-v1: https://lore.kernel.org/rcu/[email protected]/
---
 kernel/rcu/srcutree.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index 68441c32cebf..60c102a4d057 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -2422,8 +2422,10 @@ void srcu_torture_stats_print(struct srcu_struct *ssp, 
char *tt, char *tf)
                }
                pr_cont(" T(%ld,%ld)\n", s0, s1);
        }
-       if (SRCU_SIZING_IS_TORTURE())
-               srcu_transition_to_big(ssp);
+       if (SRCU_SIZING_IS_TORTURE()) {
+               if (!WARN_ON_ONCE(ssp->srcu_reader_flavor == 
SRCU_READ_FLAVOR_ATOMIC))
+                       srcu_transition_to_big(ssp);
+       }
 }
 EXPORT_SYMBOL_GPL(srcu_torture_stats_print);
 
-- 
2.43.0


Reply via email to