Lines Matching defs:rtorsp
2266 static void init_rcu_torture_one_read_state(struct rcu_torture_one_read_state *rtorsp,
2269 memset(rtorsp, 0, sizeof(*rtorsp));
2270 rtorsp->checkpolling = !(torture_random(trsp) & 0xfff);
2271 rtorsp->rtrsp = &rtorsp->rtseg[0];
2279 static bool rcu_torture_one_read_start(struct rcu_torture_one_read_state *rtorsp,
2282 if (rtorsp->checkpolling) {
2284 rtorsp->cookie = cur_ops->get_gp_state();
2286 cur_ops->get_gp_state_full(&rtorsp->cookie_full);
2288 rtorsp->started = cur_ops->get_gp_seq();
2289 rtorsp->ts = rcu_trace_clock_local();
2290 rtorsp->p = rcu_dereference_check(rcu_torture_current,
2292 (rtorsp->readstate & RCUTORTURE_RDR_UPDOWN));
2293 if (rtorsp->p == NULL) {
2295 rcutorture_one_extend(&rtorsp->readstate, 0, trsp, rtorsp->rtrsp);
2298 if (rtorsp->p->rtort_mbtest == 0)
2300 rcu_torture_reader_do_mbchk(myid, rtorsp->p, trsp);
2308 static void rcu_torture_one_read_end(struct rcu_torture_one_read_state *rtorsp,
2318 pipe_count = READ_ONCE(rtorsp->p->rtort_pipe_count);
2326 do_trace_rcu_torture_read(cur_ops->name, &rtorsp->p->rtort_rcu,
2327 rtorsp->ts, rtorsp->started, completed);
2331 completed = rcutorture_seq_diff(completed, rtorsp->started);
2338 if (rtorsp->checkpolling) {
2340 WARN_ONCE(cur_ops->poll_gp_state(rtorsp->cookie),
2345 rtorsp->cookie, cur_ops->get_gp_state());
2347 WARN_ONCE(cur_ops->poll_gp_state_full(&rtorsp->cookie_full),
2356 rcutorture_one_extend(&rtorsp->readstate, 0, trsp, rtorsp->rtrsp);
2357 WARN_ON_ONCE(rtorsp->readstate);
2360 WARN_ON_ONCE(leakpointer && READ_ONCE(rtorsp->p->rtort_pipe_count) > 1);
2365 for (rtrsp1 = &rtorsp->rtseg[0]; rtrsp1 < rtorsp->rtrsp; rtrsp1++)