diff options
-rw-r--r-- | lib/igt_aux.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/igt_aux.c b/lib/igt_aux.c index 336440c9..da21f10f 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -237,7 +237,12 @@ bool igt_sigiter_continue(struct igt_sigiter *iter, bool enable) if (iter->pass++ == 0) return igt_sigiter_start(iter, enable); - if (__igt_sigiter.stat.miss == __igt_sigiter.stat.ioctls) + /* If nothing reported SIGINT, nothing will on the next pass, so + * give up! Also give up if everything is now executing faster + * than current sigtimer. + */ + if (__igt_sigiter.stat.hit == 0 || + __igt_sigiter.stat.miss == __igt_sigiter.stat.ioctls) return igt_sigiter_stop(iter, enable); igt_debug("%s: pass %d, missed %ld/%ld\n", |