/* Handle grace-period start. */
                for (;;) {
                        trace_rcu_grace_period(rsp->name,
 -                                             READ_ONCE(rsp->gpnum),
 +                                             READ_ONCE(rsp->gp_seq),
                                               TPS("reqwait"));
                        rsp->gp_state = RCU_GP_WAIT_GPS;
-                       swait_event_idle(rsp->gp_wq, READ_ONCE(rsp->gp_flags) &
+                       swait_event_idle_exclusive(rsp->gp_wq, READ_ONCE(rsp->gp_flags) &
                                                     RCU_GP_FLAG_INIT);
                        rsp->gp_state = RCU_GP_DONE_GPS;
                        /* Locking provides needed memory barrier. */
                                           jiffies + 3 * j);
                        }
                        trace_rcu_grace_period(rsp->name,
 -                                             READ_ONCE(rsp->gpnum),
 +                                             READ_ONCE(rsp->gp_seq),
                                               TPS("fqswait"));
                        rsp->gp_state = RCU_GP_WAIT_FQS;
-                       ret = swait_event_idle_timeout(rsp->gp_wq,
+                       ret = swait_event_idle_timeout_exclusive(rsp->gp_wq,
                                        rcu_gp_fqs_check_wake(rsp, &gf), j);
                        rsp->gp_state = RCU_GP_DOING_FQS;
                        /* Locking provides needed memory barriers. */
 
         */
        trace_rcu_this_gp(rnp, rdp, c, TPS("StartWait"));
        for (;;) {
-               swait_event_interruptible(
+               swait_event_interruptible_exclusive(
 -                      rnp->nocb_gp_wq[c & 0x1],
 -                      (d = ULONG_CMP_GE(READ_ONCE(rnp->completed), c)));
 +                      rnp->nocb_gp_wq[rcu_seq_ctr(c) & 0x1],
 +                      (d = rcu_seq_done(&rnp->gp_seq, c)));
                if (likely(d))
                        break;
                WARN_ON(signal_pending(current));