[PATCH] x86: add pre_time_init in x86_ops

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>, H. Peter Anvin <hpa@...>
Cc: <linux-kernel@...>
Date: Saturday, July 19, 2008 - 9:02 pm

so numaq could use that to call numaq_pre_time_init

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>

---
 arch/x86/kernel/numaq_32.c    |    7 +++++++
 arch/x86/kernel/setup.c       |    8 --------
 arch/x86/kernel/time_32.c     |    1 +
 arch/x86/mach-default/setup.c |   10 ++++++++++
 include/asm-x86/arch_hooks.h  |    1 +
 include/asm-x86/setup.h       |    1 +
 6 files changed, 20 insertions(+), 8 deletions(-)

Index: linux-2.6/arch/x86/kernel/numaq_32.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/numaq_32.c
+++ linux-2.6/arch/x86/kernel/numaq_32.c
@@ -84,6 +84,12 @@ void __init numaq_tsc_disable(void)
 	}
 }
 
+static int __init numaq_pre_time_init(void)
+{
+	numaq_tsc_disable();
+	return 0;
+}
+
 int found_numaq;
 /*
  * Have to match translation table entries to main table entries by counter
@@ -224,6 +230,7 @@ static void __init smp_read_mpc_oem(stru
 }
 
 static struct x86_ops numaq_x86_ops __initdata = {
+	.arch_pre_time_init	= numaq_pre_time_init,
 	.arch_time_init		= NULL,
 	.arch_pre_intr_init	= NULL,
 	.arch_memory_setup	= NULL,
Index: linux-2.6/arch/x86/kernel/setup.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/setup.c
+++ linux-2.6/arch/x86/kernel/setup.c
@@ -858,14 +858,6 @@ void __init setup_arch(char **cmdline_p)
 	init_cpu_to_node();
 #endif
 
-#ifdef CONFIG_X86_NUMAQ
-	/*
-	 * need to check online nodes num, call it
-	 * here before time_init/tsc_init
-	 */
-	numaq_tsc_disable();
-#endif
-
 	init_apic_mappings();
 	ioapic_init_mappings();
 
Index: linux-2.6/arch/x86/kernel/time_32.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/time_32.c
+++ linux-2.6/arch/x86/kernel/time_32.c
@@ -129,6 +129,7 @@ void __init hpet_time_init(void)
  */
 void __init time_init(void)
 {
+	pre_time_init_hook();
 	tsc_init();
 	late_time_init = choose_time_init();
 }
Index: linux-2.6/arch/x86/mach-default/setup.c
===================================================================
--- linux-2.6.orig/arch/x86/mach-default/setup.c
+++ linux-2.6/arch/x86/mach-default/setup.c
@@ -103,6 +103,16 @@ static struct irqaction irq0  = {
 };
 
 /**
+ * pre_time_init_hook - do any specific initialisations before.
+ *
+ **/
+void __init pre_time_init_hook(void)
+{
+	if (x86_ops->arch_pre_time_init)
+		x86_ops->arch_pre_time_init();
+}
+
+/**
  * time_init_hook - do any specific initialisations for the system timer.
  *
  * Description:
Index: linux-2.6/include/asm-x86/arch_hooks.h
===================================================================
--- linux-2.6.orig/include/asm-x86/arch_hooks.h
+++ linux-2.6/include/asm-x86/arch_hooks.h
@@ -21,6 +21,7 @@ extern void intr_init_hook(void);
 extern void pre_intr_init_hook(void);
 extern void pre_setup_arch_hook(void);
 extern void trap_init_hook(void);
+extern void pre_time_init_hook(void);
 extern void time_init_hook(void);
 extern void mca_nmi_hook(void);
 
Index: linux-2.6/include/asm-x86/setup.h
===================================================================
--- linux-2.6.orig/include/asm-x86/setup.h
+++ linux-2.6/include/asm-x86/setup.h
@@ -23,6 +23,7 @@ struct mpc_config_processor;
 struct mpc_config_bus;
 struct mp_config_oemtable;
 struct x86_ops {
+	int (*arch_pre_time_init)(void);
 	int (*arch_time_init)(void);
 	int (*arch_pre_intr_init)(void);
 	int (*arch_intr_init)(void);
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] x86: introduce x86_ops, Yinghai Lu, (Sat Jul 19, 5:07 am)
Re: [PATCH] x86: introduce x86_ops, Ingo Molnar, (Sun Jul 20, 3:21 am)
[PATCH] x86: add pre_time_init in x86_ops, Yinghai Lu, (Sat Jul 19, 9:02 pm)
Re: [PATCH] x86: add pre_time_init in x86_ops, Ingo Molnar, (Sun Jul 20, 3:28 am)
[PATCH] x86: use x86_ops with numaq, Yinghai Lu, (Sat Jul 19, 9:01 pm)
Re: [PATCH] x86: use x86_ops with numaq, Ingo Molnar, (Sun Jul 20, 3:28 am)
Re: [PATCH] x86: introduce x86_ops, Joerg Roedel, (Sat Jul 19, 5:16 am)
Re: [PATCH] x86: introduce x86_ops, Yinghai Lu, (Sat Jul 19, 5:19 am)
Re: [PATCH] x86: introduce x86_ops, Joerg Roedel, (Sat Jul 19, 5:36 am)