From 1a7e27057ed5974be103c60afecdc8aae691584f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 3 Jan 2016 13:34:42 +0100 Subject: Fix pfinet crash During rsyslog testsuite, it does happen that threads running schedule_timeout get woken up by something else than the timer. The (local) timer needs to be removed in that case. Let's just always remove it, like Linux does. * pfinet/glue-include/linux/sched.h (schedule_timeout): Remove local timer before returning. --- pfinet/glue-include/linux/sched.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'pfinet') diff --git a/pfinet/glue-include/linux/sched.h b/pfinet/glue-include/linux/sched.h index 5cf2f1b6..e39263e5 100644 --- a/pfinet/glue-include/linux/sched.h +++ b/pfinet/glue-include/linux/sched.h @@ -185,6 +185,9 @@ schedule_timeout (long timeout) else return 0; } + /* It may happen that we get woken without a signal. Noticed notably during + rsyslog testsuite. Make sure we don't leave our timer in. */ + del_timer(&timer); return 0; } -- cgit v1.2.3