aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRichard Cochran <richardcochran@gmail.com>2012-07-17 13:33:49 -0400
committerLuis Henriques <luis.henriques@canonical.com>2012-07-23 05:50:32 -0400
commit16ad6d6597bb8d4c19c296266767ae2593ce9e6b (patch)
treea7a9926bbb9e6b6c9388e3c62ad2f9ebb6f3ef2a /kernel
parent4cc3f5aab9590aad95e4c56b2f5666268caf8e91 (diff)
ntp: Correct TAI offset during leap second
BugLink: http://bugs.launchpad.net/bugs/1026850 This is a backport of dd48d708ff3e917f6d6b6c2b696c3f18c019feed When repeating a UTC time value during a leap second (when the UTC time should be 23:59:60), the TAI timescale should not stop. The kernel NTP code increments the TAI offset one second too late. This patch fixes the issue by incrementing the offset during the leap second itself. Signed-off-by: Richard Cochran <richardcochran@gmail.com> Cc: Prarit Bhargava <prarit@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/time/ntp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 4508f7f68a7..f1eb182b5fe 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -378,6 +378,7 @@ int second_overflow(unsigned long secs)
378 if (secs % 86400 == 0) { 378 if (secs % 86400 == 0) {
379 leap = -1; 379 leap = -1;
380 time_state = TIME_OOP; 380 time_state = TIME_OOP;
381 time_tai++;
381 printk(KERN_NOTICE 382 printk(KERN_NOTICE
382 "Clock: inserting leap second 23:59:60 UTC\n"); 383 "Clock: inserting leap second 23:59:60 UTC\n");
383 } 384 }
@@ -392,7 +393,6 @@ int second_overflow(unsigned long secs)
392 } 393 }
393 break; 394 break;
394 case TIME_OOP: 395 case TIME_OOP:
395 time_tai++;
396 time_state = TIME_WAIT; 396 time_state = TIME_WAIT;
397 break; 397 break;
398 398