]> www.infradead.org Git - users/jedix/linux-maple.git/commit
3.0.x: hrtimer: Fix clock_was_set so it is safe to call from irq context
authorJohn Stultz <johnstul@us.ibm.com>
Sun, 1 Jul 2012 18:01:21 +0000 (14:01 -0400)
committerJoe Jin <joe.jin@oracle.com>
Fri, 6 Jul 2012 11:01:23 +0000 (19:01 +0800)
commitc51e012012e48ca262d4b489e33bc113bb5ac74d
tree923a1df3e1e1e8c89e13b9fd5f4533d90d84d2de
parent9c15f47a7228d4879d66b824d4ad38ee33b64002
3.0.x: hrtimer: Fix clock_was_set so it is safe to call from irq context

NOTE:This is a prerequisite patch that's required to
address the widely observed leap-second related futex/hrtimer
issues.

Currently clock_was_set() is unsafe to be called from irq
context, as it calls on_each_cpu(). This causes problems when
we need to adjust the time from update_wall_time().

To fix this, if clock_was_set is called when irqs are
disabled, we schedule a timer to fire for immedately after
we're out of interrupt context to then notify the hrtimer
subsystem.

CC: Prarit Bhargava <prarit@redhat.com>
CC: stable@vger.kernel.org
CC: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Reported-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Backported-by: Joe Jin <joe.jin@oracle.com>
kernel/hrtimer.c