Lines Matching refs:rtrcp
457 struct rcu_torture_reader_check *rtrcp = READ_ONCE(rp->rtort_chkp); in rcu_torture_pipe_update_one() local
459 if (rtrcp) { in rcu_torture_pipe_update_one()
461 smp_store_release(&rtrcp->rtc_ready, 1); // Pair with smp_load_acquire(). in rcu_torture_pipe_update_one()
1720 struct rcu_torture_reader_check *rtrcp; // Me. in rcu_torture_reader_do_mbchk() local
1729 rtrcp = &rcu_torture_reader_mbchk[myid]; in rcu_torture_reader_do_mbchk()
1730 WRITE_ONCE(rtrcp->rtc_myloops, rtrcp->rtc_myloops + 1); in rcu_torture_reader_do_mbchk()
1738 smp_load_acquire(&rtrcp->rtc_chkrdr) < 0 && // Pairs with smp_store_release below. in rcu_torture_reader_do_mbchk()
1741 rtrcp->rtc_chkloops = READ_ONCE(rtrcp_chked->rtc_myloops); in rcu_torture_reader_do_mbchk()
1742 WARN_ON_ONCE(rtrcp->rtc_chkrdr >= 0); in rcu_torture_reader_do_mbchk()
1743 rtrcp->rtc_chkrdr = rdrchked; in rcu_torture_reader_do_mbchk()
1744 WARN_ON_ONCE(rtrcp->rtc_ready); // This gets set after the grace period ends. in rcu_torture_reader_do_mbchk()
1745 if (cmpxchg_relaxed(&rtrcp_chker->rtc_assigner, NULL, rtrcp) || in rcu_torture_reader_do_mbchk()
1746 cmpxchg_relaxed(&rtp->rtort_chkp, NULL, rtrcp)) in rcu_torture_reader_do_mbchk()
1747 (void)cmpxchg_relaxed(&rtrcp_chker->rtc_assigner, rtrcp, NULL); // Back out. in rcu_torture_reader_do_mbchk()
1751 rtrcp_assigner = READ_ONCE(rtrcp->rtc_assigner); in rcu_torture_reader_do_mbchk()
1764 smp_store_release(&rtrcp->rtc_assigner, NULL); // Someone else can assign us work. in rcu_torture_reader_do_mbchk()