* [PATCH 1/1] signal c/r: don't play with zero timeouts
@ 2009-08-27 18:49 Serge E. Hallyn
[not found] ` <20090827184934.GA20580-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Serge E. Hallyn @ 2009-08-27 18:49 UTC (permalink / raw)
To: Oren Laadan; +Cc: Linux Containers
If it_virt_expires or it_prof_expires is zero, then don't
subtract {virt,prof}_ticks(t) from it. This is the same
thing do_getitimer() does, and it fixes my issues with
the signals c/r patchset on s390.
Signed-off-by: Serge E. Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
---
checkpoint/signal.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/checkpoint/signal.c b/checkpoint/signal.c
index 960356c..15b7cdc 100644
--- a/checkpoint/signal.c
+++ b/checkpoint/signal.c
@@ -382,13 +382,17 @@ static int checkpoint_signal(struct ckpt_ctx *ctx, struct task_struct *t)
}
h->it_real_incr = ktime_to_ns(signal->it_real_incr);
- cputime = cputime_sub(signal->it_virt_expires, virt_ticks(t));
+ cputime = signal->it_virt_expires;
+ if (!cputime_eq(cputime, cputime_zero))
+ cputime = cputime_sub(signal->it_virt_expires, virt_ticks(t));
cputime_to_timeval(cputime, &tval);
h->it_virt_value = timeval_to_ns(&tval);
cputime_to_timeval(signal->it_virt_incr, &tval);
h->it_virt_incr = timeval_to_ns(&tval);
- cputime = cputime_sub(signal->it_prof_expires, prof_ticks(t));
+ cputime = signal->it_prof_expires;
+ if (!cputime_eq(cputime, cputime_zero))
+ cputime = cputime_sub(signal->it_prof_expires, prof_ticks(t));
cputime_to_timeval(cputime, &tval);
h->it_prof_value = timeval_to_ns(&tval);
cputime_to_timeval(signal->it_prof_incr, &tval);
--
1.6.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-08-28 15:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-27 18:49 [PATCH 1/1] signal c/r: don't play with zero timeouts Serge E. Hallyn
[not found] ` <20090827184934.GA20580-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-08-28 15:21 ` Oren Laadan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox