if (rcu_gp_init(rsp))
                                break;
                        cond_resched();
-                       flush_signals(current);
+                       WARN_ON(signal_pending(current));
                        trace_rcu_grace_period(rsp->name,
                                               ACCESS_ONCE(rsp->gpnum),
                                               TPS("reqwaitsig"));
                        } else {
                                /* Deal with stray signal. */
                                cond_resched();
-                               flush_signals(current);
+                               WARN_ON(signal_pending(current));
                                trace_rcu_grace_period(rsp->name,
                                                       ACCESS_ONCE(rsp->gpnum),
                                                       TPS("fqswaitsig"));
 
                        (d = ULONG_CMP_GE(ACCESS_ONCE(rnp->completed), c)));
                if (likely(d))
                        break;
-               flush_signals(current);
+               WARN_ON(signal_pending(current));
                trace_rcu_future_gp(rnp, rdp, c, TPS("ResumeWait"));
        }
        trace_rcu_future_gp(rnp, rdp, c, TPS("EndWait"));
                if (!rcu_nocb_poll)
                        trace_rcu_nocb_wake(my_rdp->rsp->name, my_rdp->cpu,
                                            "WokeEmpty");
-               flush_signals(current);
+               WARN_ON(signal_pending(current));
                schedule_timeout_interruptible(1);
 
                /* Rescan in case we were a victim of memory ordering. */
                if (!rcu_nocb_poll)
                        trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
                                            "WokeEmpty");
-               flush_signals(current);
+               WARN_ON(signal_pending(current));
                schedule_timeout_interruptible(1);
        }
 }