Currently, rcutorture ignores reader_flavor bits that are not in the
SRCU_READ_FLAVOR_ALL bitmask, which could confuse rcutorture users into
believing buggy patches had been fully tested.  This commit therefore
produces a splat in this case.

Signed-off-by: Paul E. McKenney <paul...@kernel.org>
---
 kernel/rcu/rcutorture.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 2e6e8664e4038..36bc8d1332d43 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -690,6 +690,8 @@ static int srcu_torture_read_lock(void)
        struct srcu_ctr __percpu *scp;
        int ret = 0;
 
+       WARN_ON_ONCE(reader_flavor & ~SRCU_READ_FLAVOR_ALL);
+
        if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || !(reader_flavor & 
SRCU_READ_FLAVOR_ALL)) {
                idx = srcu_read_lock(srcu_ctlp);
                WARN_ON_ONCE(idx & ~0x1);
-- 
2.40.1


Reply via email to