rcu_bh is disabled on PREEMPT_RT via a stub ops that has no name.  Thus,
if a torture_type other than "rcu" is used, rcu_torture_init() will
pass NULL to strcmp() when iterating over torture_ops[], and oops.

Signed-off-by: Scott Wood <sw...@redhat.com>
---
With this applied to 4.19.25-rt16 and specifying torture_type=sched,
similar rcutorture failures are seen as with 5.0.3-rt1 (in which standard
torture_cype=rcu no longer has .extendables=0 and thus stresses similar
paths).

 kernel/rcu/rcutorture.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 7d2a615601e7..408d03048911 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -479,6 +479,7 @@ static struct rcu_torture_ops rcu_bh_ops = {
 #else
 static struct rcu_torture_ops rcu_bh_ops = {
        .ttype          = INVALID_RCU_FLAVOR,
+       .name           = "rcu_bh"
 };
 #endif
 
-- 
2.18.1

Reply via email to