Skip to content

Commit cab5e12

Browse files
johnstultz-workIngo Molnar
authored andcommitted
time: Revert to calling clock_was_set_delayed() while in irq context
In commit 47a1b79 ("tick/timekeeping: Call update_wall_time outside the jiffies lock"), we moved to calling clock_was_set() due to the fact that we were no longer holding the timekeeping or jiffies lock. However, there is still the problem that clock_was_set() triggers an IPI, which cannot be done from the timer's hard irq context, and will generate WARN_ON warnings. Apparently in my earlier testing, I'm guessing I didn't bump the dmesg log level, so I somehow missed the WARN_ONs. Thus we need to revert back to calling clock_was_set_delayed(). Signed-off-by: John Stultz <john.stultz@linaro.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/1395963049-11923-1-git-send-email-john.stultz@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 75c5a52 commit cab5e12

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

kernel/time/timekeeping.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1435,7 +1435,8 @@ void update_wall_time(void)
14351435
out:
14361436
raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
14371437
if (clock_set)
1438-
clock_was_set();
1438+
/* Have to call _delayed version, since in irq context*/
1439+
clock_was_set_delayed();
14391440
}
14401441

14411442
/**

0 commit comments

Comments
 (0)