diff options
author | john stultz <johnstul@us.ibm.com> | 2009-01-22 00:53:22 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-06-11 05:24:52 -0400 |
commit | 3f68535adad8dd89499505a65fb25d0e02d118cc (patch) | |
tree | b347c3901d2d590d8c2b8c3be993ef20b278e61f /kernel/hrtimer.c | |
parent | 7d27558c4138ac6b3684dea35c2f4379b940a7dd (diff) |
clocksource: sanity check sysfs clocksource changes
Thomas, Andrew and Ingo pointed out that we don't have any safety checks
in the clocksource sysfs entries to make sure sysadmins don't try to
change the clocksource to a non high-res timer capable clocksource (such
as jiffies) when high-res timers (HRT) is enabled. Doing so will likely
hang a system.
Correct this by filtering non HRT clocksources from available_clocksources
and not accepting non HRT clocksources with HRT enabled.
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/hrtimer.c')
-rw-r--r-- | kernel/hrtimer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index cb8a15c19583..1a70c18cdffe 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -476,7 +476,7 @@ static inline int hrtimer_is_hres_enabled(void) | |||
476 | /* | 476 | /* |
477 | * Is the high resolution mode active ? | 477 | * Is the high resolution mode active ? |
478 | */ | 478 | */ |
479 | static inline int hrtimer_hres_active(void) | 479 | int hrtimer_hres_active(void) |
480 | { | 480 | { |
481 | return __get_cpu_var(hrtimer_bases).hres_active; | 481 | return __get_cpu_var(hrtimer_bases).hres_active; |
482 | } | 482 | } |
@@ -704,7 +704,7 @@ static int hrtimer_switch_to_hres(void) | |||
704 | 704 | ||
705 | #else | 705 | #else |
706 | 706 | ||
707 | static inline int hrtimer_hres_active(void) { return 0; } | 707 | int hrtimer_hres_active(void) { return 0; } |
708 | static inline int hrtimer_is_hres_enabled(void) { return 0; } | 708 | static inline int hrtimer_is_hres_enabled(void) { return 0; } |
709 | static inline int hrtimer_switch_to_hres(void) { return 0; } | 709 | static inline int hrtimer_switch_to_hres(void) { return 0; } |
710 | static inline void hrtimer_force_reprogram(struct hrtimer_cpu_base *base) { } | 710 | static inline void hrtimer_force_reprogram(struct hrtimer_cpu_base *base) { } |