diff options
Diffstat (limited to 'kernel/time/clocksource.c')
-rw-r--r-- | kernel/time/clocksource.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index 18b9f5da4ee9..592bf584d1d2 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/module.h> | 30 | #include <linux/module.h> |
31 | #include <linux/sched.h> /* for spin_unlock_irq() using preempt_count() m68k */ | 31 | #include <linux/sched.h> /* for spin_unlock_irq() using preempt_count() m68k */ |
32 | #include <linux/tick.h> | 32 | #include <linux/tick.h> |
33 | #include <linux/hrtimer.h> | ||
34 | 33 | ||
35 | void timecounter_init(struct timecounter *tc, | 34 | void timecounter_init(struct timecounter *tc, |
36 | const struct cyclecounter *cc, | 35 | const struct cyclecounter *cc, |
@@ -511,13 +510,13 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev, | |||
511 | } | 510 | } |
512 | 511 | ||
513 | /* | 512 | /* |
514 | * Check to make sure we don't switch to a non-HRT usable | 513 | * Check to make sure we don't switch to a non-highres capable |
515 | * clocksource if HRT is enabled and running | 514 | * clocksource if the tick code is in oneshot mode (highres or nohz) |
516 | */ | 515 | */ |
517 | if (hrtimer_hres_active() && | 516 | if (tick_oneshot_mode_active() && |
518 | !(ovr->flags & CLOCK_SOURCE_VALID_FOR_HRES)) { | 517 | !(ovr->flags & CLOCK_SOURCE_VALID_FOR_HRES)) { |
519 | printk(KERN_WARNING "%s clocksource is not HRT compatible. " | 518 | printk(KERN_WARNING "%s clocksource is not HRT compatible. " |
520 | "Cannot switch while in HRT mode\n", ovr->name); | 519 | "Cannot switch while in HRT/NOHZ mode\n", ovr->name); |
521 | ovr = NULL; | 520 | ovr = NULL; |
522 | override_name[0] = 0; | 521 | override_name[0] = 0; |
523 | } | 522 | } |
@@ -550,9 +549,12 @@ sysfs_show_available_clocksources(struct sys_device *dev, | |||
550 | 549 | ||
551 | spin_lock_irq(&clocksource_lock); | 550 | spin_lock_irq(&clocksource_lock); |
552 | list_for_each_entry(src, &clocksource_list, list) { | 551 | list_for_each_entry(src, &clocksource_list, list) { |
553 | /* Don't show non-HRES clocksource if HRES is enabled */ | 552 | /* |
554 | if (!hrtimer_hres_active() || | 553 | * Don't show non-HRES clocksource if the tick code is |
555 | (src->flags & CLOCK_SOURCE_VALID_FOR_HRES)) | 554 | * in one shot mode (highres=on or nohz=on) |
555 | */ | ||
556 | if (!tick_oneshot_mode_active() || | ||
557 | (src->flags & CLOCK_SOURCE_VALID_FOR_HRES)) | ||
556 | count += snprintf(buf + count, | 558 | count += snprintf(buf + count, |
557 | max((ssize_t)PAGE_SIZE - count, (ssize_t)0), | 559 | max((ssize_t)PAGE_SIZE - count, (ssize_t)0), |
558 | "%s ", src->name); | 560 | "%s ", src->name); |