static int srcu_torture_read_lock(void)
 {
        int idx;
+       struct srcu_ctr __percpu *scp;
        int ret = 0;
 
        if ((reader_flavor & SRCU_READ_FLAVOR_NORMAL) || !(reader_flavor & SRCU_READ_FLAVOR_ALL)) {
                WARN_ON_ONCE(idx & ~0x1);
                ret += idx << 2;
        }
+       if (reader_flavor & SRCU_READ_FLAVOR_FAST) {
+               scp = srcu_read_lock_fast(srcu_ctlp);
+               idx = __srcu_ptr_to_ctr(srcu_ctlp, scp);
+               WARN_ON_ONCE(idx & ~0x1);
+               ret += idx << 3;
+       }
        return ret;
 }
 
 static void srcu_torture_read_unlock(int idx)
 {
        WARN_ON_ONCE((reader_flavor && (idx & ~reader_flavor)) || (!reader_flavor && (idx & ~0x1)));
+       if (reader_flavor & SRCU_READ_FLAVOR_FAST)
+               srcu_read_unlock_fast(srcu_ctlp, __srcu_ctr_to_ptr(srcu_ctlp, (idx & 0x8) >> 3));
        if (reader_flavor & SRCU_READ_FLAVOR_LITE)
                srcu_read_unlock_lite(srcu_ctlp, (idx & 0x4) >> 2);
        if (reader_flavor & SRCU_READ_FLAVOR_NMI)