diff options
-rw-r--r-- | arch/x86/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/kernel/time.c | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 1a0be022f91d..adc8c96df914 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -48,6 +48,7 @@ config X86 | |||
48 | select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI | 48 | select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI |
49 | select ANON_INODES | 49 | select ANON_INODES |
50 | select ARCH_CLOCKSOURCE_DATA | 50 | select ARCH_CLOCKSOURCE_DATA |
51 | select ARCH_CLOCKSOURCE_INIT | ||
51 | select ARCH_DISCARD_MEMBLOCK | 52 | select ARCH_DISCARD_MEMBLOCK |
52 | select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI | 53 | select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI |
53 | select ARCH_HAS_DEBUG_VIRTUAL | 54 | select ARCH_HAS_DEBUG_VIRTUAL |
diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c index be01328eb755..1fa632e0829f 100644 --- a/arch/x86/kernel/time.c +++ b/arch/x86/kernel/time.c | |||
@@ -10,6 +10,7 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/clocksource.h> | ||
13 | #include <linux/clockchips.h> | 14 | #include <linux/clockchips.h> |
14 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
15 | #include <linux/irq.h> | 16 | #include <linux/irq.h> |
@@ -105,3 +106,18 @@ void __init time_init(void) | |||
105 | { | 106 | { |
106 | late_time_init = x86_late_time_init; | 107 | late_time_init = x86_late_time_init; |
107 | } | 108 | } |
109 | |||
110 | /* | ||
111 | * Sanity check the vdso related archdata content. | ||
112 | */ | ||
113 | void clocksource_arch_init(struct clocksource *cs) | ||
114 | { | ||
115 | if (cs->archdata.vclock_mode == VCLOCK_NONE) | ||
116 | return; | ||
117 | |||
118 | if (cs->archdata.vclock_mode > VCLOCK_MAX) { | ||
119 | pr_warn("clocksource %s registered with invalid vclock_mode %d. Disabling vclock.\n", | ||
120 | cs->name, cs->archdata.vclock_mode); | ||
121 | cs->archdata.vclock_mode = VCLOCK_NONE; | ||
122 | } | ||
123 | } | ||