linux/kernel/time
Richard Larocque 5cebda5d05 alarmtimer: Do not signal SIGEV_NONE timers
commit 265b81d23a upstream.

Avoids sending a signal to alarm timers created with sigev_notify set to
SIGEV_NONE by checking for that special case in the timeout callback.

The regular posix timers avoid sending signals to SIGEV_NONE timers by
not scheduling any callbacks for them in the first place.  Although it
would be possible to do something similar for alarm timers, it's simpler
to handle this as a special case in the timeout.

Prior to this patch, the alarm timer would ignore the sigev_notify value
and try to deliver signals to the process anyway.  Even worse, the
sanity check for the value of sigev_signo is skipped when SIGEV_NONE was
specified, so the signal number could be bogus.  If sigev_signo was an
unitialized value (as it often would be if SIGEV_NONE is used), then
it's hard to predict which signal will be sent.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Sharvil Nanavati <sharvil@google.com>
Signed-off-by: Richard Larocque <rlarocque@google.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-10-05 14:54:14 -07:00
..
alarmtimer.c alarmtimer: Do not signal SIGEV_NONE timers 2014-10-05 14:54:14 -07:00
clockevents.c timer: Fix lock inversion between hrtimer_bases.lock and scheduler locks 2014-08-07 14:30:26 -07:00
clocksource.c kernel-time: fix s/then/than/ spelling errors 2012-03-23 16:49:21 -07:00
jiffies.c time: Fix overflow when HZ is smaller than 60 2014-02-22 12:41:29 -08:00
Kconfig Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-05-15 14:05:17 -07:00
Makefile time: remove the timecompare code. 2012-11-01 11:41:35 -04:00
ntp_internal.h ntp: Rework do_adjtimex to take timespec and tai arguments 2013-04-04 13:18:15 -07:00
ntp.c ntp: Make periodic RTC update more reliable 2013-12-08 07:29:28 -08:00
posix-clock.c kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure 2011-10-31 19:30:05 -04:00
tick-broadcast.c tick: Make oneshot broadcast robust vs. CPU offlining 2014-03-23 21:38:21 -07:00
tick-common.c clockevents: Prefer CPU local devices over global devices 2013-12-08 07:29:27 -08:00
tick-internal.h clockevents: Get rid of the notifier chain 2013-12-08 07:29:27 -08:00
tick-oneshot.c clockevents: Make minimum delay adjustments configurable 2011-09-08 11:10:56 +02:00
tick-sched.c nohz: Fix another inconsistency between CONFIG_NO_HZ=n and nohz=off 2014-06-26 15:12:41 -04:00
timeconv.c time: add function to convert between calendar time and broken-down time for universal use 2009-09-24 07:20:56 -07:00
timekeeping.c timekeeping: Avoid possible deadlock from clock_was_set_delayed 2014-02-13 13:48:04 -08:00
timer_list.c timer_list: correct the iterator for timer_list 2013-09-07 22:09:58 -07:00
timer_stats.c locking, timer_stats: Annotate table_lock as raw 2011-09-13 11:12:00 +02:00