aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/Kconfig1
-rw-r--r--arch/x86/kernel/time.c16
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 */
113void 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}