Lines Matching refs:rtrcp
452 struct rcu_torture_reader_check *rtrcp = READ_ONCE(rp->rtort_chkp); in rcu_torture_pipe_update_one() local
454 if (rtrcp) { in rcu_torture_pipe_update_one()
456 smp_store_release(&rtrcp->rtc_ready, 1); // Pair with smp_load_acquire(). in rcu_torture_pipe_update_one()
1674 struct rcu_torture_reader_check *rtrcp; // Me. in rcu_torture_reader_do_mbchk() local
1683 rtrcp = &rcu_torture_reader_mbchk[myid]; in rcu_torture_reader_do_mbchk()
1684 WRITE_ONCE(rtrcp->rtc_myloops, rtrcp->rtc_myloops + 1); in rcu_torture_reader_do_mbchk()
1692 smp_load_acquire(&rtrcp->rtc_chkrdr) < 0 && // Pairs with smp_store_release below. in rcu_torture_reader_do_mbchk()
1695 rtrcp->rtc_chkloops = READ_ONCE(rtrcp_chked->rtc_myloops); in rcu_torture_reader_do_mbchk()
1696 WARN_ON_ONCE(rtrcp->rtc_chkrdr >= 0); in rcu_torture_reader_do_mbchk()
1697 rtrcp->rtc_chkrdr = rdrchked; in rcu_torture_reader_do_mbchk()
1698 WARN_ON_ONCE(rtrcp->rtc_ready); // This gets set after the grace period ends. in rcu_torture_reader_do_mbchk()
1699 if (cmpxchg_relaxed(&rtrcp_chker->rtc_assigner, NULL, rtrcp) || in rcu_torture_reader_do_mbchk()
1700 cmpxchg_relaxed(&rtp->rtort_chkp, NULL, rtrcp)) in rcu_torture_reader_do_mbchk()
1701 (void)cmpxchg_relaxed(&rtrcp_chker->rtc_assigner, rtrcp, NULL); // Back out. in rcu_torture_reader_do_mbchk()
1705 rtrcp_assigner = READ_ONCE(rtrcp->rtc_assigner); in rcu_torture_reader_do_mbchk()
1718 smp_store_release(&rtrcp->rtc_assigner, NULL); // Someone else can assign us work. in rcu_torture_reader_do_mbchk()