diff options
Diffstat (limited to 'kernel/time')
| -rw-r--r-- | kernel/time/Kconfig | 58 | ||||
| -rw-r--r-- | kernel/time/ntp.c | 8 | ||||
| -rw-r--r-- | kernel/time/timekeeping.c | 4 |
3 files changed, 55 insertions, 15 deletions
diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index a20dc8a3c949..fd42bd452b75 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig | |||
| @@ -2,6 +2,55 @@ | |||
| 2 | # Timer subsystem related configuration options | 2 | # Timer subsystem related configuration options |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | # Options selectable by arch Kconfig | ||
| 6 | |||
| 7 | # Watchdog function for clocksources to detect instabilities | ||
| 8 | config CLOCKSOURCE_WATCHDOG | ||
| 9 | bool | ||
| 10 | |||
| 11 | # Architecture has extra clocksource data | ||
| 12 | config ARCH_CLOCKSOURCE_DATA | ||
| 13 | bool | ||
| 14 | |||
| 15 | # Timekeeping vsyscall support | ||
| 16 | config GENERIC_TIME_VSYSCALL | ||
| 17 | bool | ||
| 18 | |||
| 19 | # ktime_t scalar 64bit nsec representation | ||
| 20 | config KTIME_SCALAR | ||
| 21 | bool | ||
| 22 | |||
| 23 | # Old style timekeeping | ||
| 24 | config ARCH_USES_GETTIMEOFFSET | ||
| 25 | bool | ||
| 26 | |||
| 27 | # The generic clock events infrastructure | ||
| 28 | config GENERIC_CLOCKEVENTS | ||
| 29 | bool | ||
| 30 | |||
| 31 | # Migration helper. Builds, but does not invoke | ||
| 32 | config GENERIC_CLOCKEVENTS_BUILD | ||
| 33 | bool | ||
| 34 | default y | ||
| 35 | depends on GENERIC_CLOCKEVENTS | ||
| 36 | |||
| 37 | # Clockevents broadcasting infrastructure | ||
| 38 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
| 39 | bool | ||
| 40 | depends on GENERIC_CLOCKEVENTS | ||
| 41 | |||
| 42 | # Automatically adjust the min. reprogramming time for | ||
| 43 | # clock event device | ||
| 44 | config GENERIC_CLOCKEVENTS_MIN_ADJUST | ||
| 45 | bool | ||
| 46 | |||
| 47 | # Generic update of CMOS clock | ||
| 48 | config GENERIC_CMOS_UPDATE | ||
| 49 | bool | ||
| 50 | |||
| 51 | if GENERIC_CLOCKEVENTS | ||
| 52 | menu "Timers subsystem" | ||
| 53 | |||
| 5 | # Core internal switch. Selected by NO_HZ / HIGH_RES_TIMERS. This is | 54 | # Core internal switch. Selected by NO_HZ / HIGH_RES_TIMERS. This is |
| 6 | # only related to the tick functionality. Oneshot clockevent devices | 55 | # only related to the tick functionality. Oneshot clockevent devices |
| 7 | # are supported independ of this. | 56 | # are supported independ of this. |
| @@ -26,10 +75,5 @@ config HIGH_RES_TIMERS | |||
| 26 | hardware is not capable then this option only increases | 75 | hardware is not capable then this option only increases |
| 27 | the size of the kernel image. | 76 | the size of the kernel image. |
| 28 | 77 | ||
| 29 | config GENERIC_CLOCKEVENTS_BUILD | 78 | endmenu |
| 30 | bool | 79 | endif |
| 31 | default y | ||
| 32 | depends on GENERIC_CLOCKEVENTS | ||
| 33 | |||
| 34 | config GENERIC_CLOCKEVENTS_MIN_ADJUST | ||
| 35 | bool | ||
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index f03fd83b170b..70b33abcc7bb 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c | |||
| @@ -412,6 +412,7 @@ int second_overflow(unsigned long secs) | |||
| 412 | if (secs % 86400 == 0) { | 412 | if (secs % 86400 == 0) { |
| 413 | leap = -1; | 413 | leap = -1; |
| 414 | time_state = TIME_OOP; | 414 | time_state = TIME_OOP; |
| 415 | time_tai++; | ||
| 415 | printk(KERN_NOTICE | 416 | printk(KERN_NOTICE |
| 416 | "Clock: inserting leap second 23:59:60 UTC\n"); | 417 | "Clock: inserting leap second 23:59:60 UTC\n"); |
| 417 | } | 418 | } |
| @@ -426,7 +427,6 @@ int second_overflow(unsigned long secs) | |||
| 426 | } | 427 | } |
| 427 | break; | 428 | break; |
| 428 | case TIME_OOP: | 429 | case TIME_OOP: |
| 429 | time_tai++; | ||
| 430 | time_state = TIME_WAIT; | 430 | time_state = TIME_WAIT; |
| 431 | break; | 431 | break; |
| 432 | 432 | ||
| @@ -473,8 +473,6 @@ int second_overflow(unsigned long secs) | |||
| 473 | << NTP_SCALE_SHIFT; | 473 | << NTP_SCALE_SHIFT; |
| 474 | time_adjust = 0; | 474 | time_adjust = 0; |
| 475 | 475 | ||
| 476 | |||
| 477 | |||
| 478 | out: | 476 | out: |
| 479 | spin_unlock_irqrestore(&ntp_lock, flags); | 477 | spin_unlock_irqrestore(&ntp_lock, flags); |
| 480 | 478 | ||
| @@ -559,10 +557,10 @@ static inline void process_adj_status(struct timex *txc, struct timespec *ts) | |||
| 559 | /* only set allowed bits */ | 557 | /* only set allowed bits */ |
| 560 | time_status &= STA_RONLY; | 558 | time_status &= STA_RONLY; |
| 561 | time_status |= txc->status & ~STA_RONLY; | 559 | time_status |= txc->status & ~STA_RONLY; |
| 562 | |||
| 563 | } | 560 | } |
| 561 | |||
| 564 | /* | 562 | /* |
| 565 | * Called with the xtime lock held, so we can access and modify | 563 | * Called with ntp_lock held, so we can access and modify |
| 566 | * all the global NTP state: | 564 | * all the global NTP state: |
| 567 | */ | 565 | */ |
| 568 | static inline void process_adjtimex_modes(struct timex *txc, struct timespec *ts) | 566 | static inline void process_adjtimex_modes(struct timex *txc, struct timespec *ts) |
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index d66b21308f7c..6e46cacf5969 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
| @@ -240,7 +240,6 @@ void getnstimeofday(struct timespec *ts) | |||
| 240 | 240 | ||
| 241 | timespec_add_ns(ts, nsecs); | 241 | timespec_add_ns(ts, nsecs); |
| 242 | } | 242 | } |
| 243 | |||
| 244 | EXPORT_SYMBOL(getnstimeofday); | 243 | EXPORT_SYMBOL(getnstimeofday); |
| 245 | 244 | ||
| 246 | ktime_t ktime_get(void) | 245 | ktime_t ktime_get(void) |
| @@ -357,8 +356,8 @@ void do_gettimeofday(struct timeval *tv) | |||
| 357 | tv->tv_sec = now.tv_sec; | 356 | tv->tv_sec = now.tv_sec; |
| 358 | tv->tv_usec = now.tv_nsec/1000; | 357 | tv->tv_usec = now.tv_nsec/1000; |
| 359 | } | 358 | } |
| 360 | |||
| 361 | EXPORT_SYMBOL(do_gettimeofday); | 359 | EXPORT_SYMBOL(do_gettimeofday); |
| 360 | |||
| 362 | /** | 361 | /** |
| 363 | * do_settimeofday - Sets the time of day | 362 | * do_settimeofday - Sets the time of day |
| 364 | * @tv: pointer to the timespec variable containing the new time | 363 | * @tv: pointer to the timespec variable containing the new time |
| @@ -392,7 +391,6 @@ int do_settimeofday(const struct timespec *tv) | |||
| 392 | 391 | ||
| 393 | return 0; | 392 | return 0; |
| 394 | } | 393 | } |
| 395 | |||
| 396 | EXPORT_SYMBOL(do_settimeofday); | 394 | EXPORT_SYMBOL(do_settimeofday); |
| 397 | 395 | ||
| 398 | 396 | ||
