| From dc39117bc65c77f555116fd314719d0a5e2fd61f Mon Sep 17 00:00:00 2001 |
| From: Richard Cochran <richardcochran@gmail.com> |
| Date: Tue, 17 Jul 2012 17:49:22 -0400 |
| Subject: [PATCH] ntp: Correct TAI offset during leap second |
| |
| 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> |
| Cc: Linux Kernel <linux-kernel@vger.kernel.org> |
| Signed-off-by: John Stultz <john.stultz@linaro.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| --- |
| kernel/time/ntp.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c |
| index 2522ab8..ec08c06 100644 |
| --- a/kernel/time/ntp.c |
| +++ b/kernel/time/ntp.c |
| @@ -208,6 +208,7 @@ int second_overflow(unsigned long secs) |
| if (secs % 86400 == 0) { |
| leap = -1; |
| time_state = TIME_OOP; |
| + time_tai++; |
| printk(KERN_NOTICE |
| "Clock: inserting leap second 23:59:60 UTC\n"); |
| } |
| @@ -222,7 +223,6 @@ int second_overflow(unsigned long secs) |
| } |
| break; |
| case TIME_OOP: |
| - time_tai++; |
| time_state = TIME_WAIT; |
| break; |
| |
| -- |
| 1.7.12.rc1.1.gbce1580 |
| |