diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-08-20 07:04:10 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-08-31 03:35:45 -0400 |
commit | 42bbdb43b16d233b2dacb4cd76e28f61c2a86dc6 (patch) | |
tree | f70bc7a928b5131e69971ff1fb5a30a0bb8f52c3 | |
parent | 428cf9025b15573e16e658032f2b963283e34ae0 (diff) |
x86: Replace ARCH_SETUP by a proper x86_init_ops
ARCH_SETUP is a horrible leftover from the old arch/i386 mach support
code. It still has a lonely user in xen. Move it to x86_init_ops.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/include/asm/paravirt.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/paravirt_types.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/x86_init.h | 9 | ||||
-rw-r--r-- | arch/x86/kernel/paravirt.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/setup.c | 6 | ||||
-rw-r--r-- | arch/x86/kernel/x86_init.c | 4 | ||||
-rw-r--r-- | arch/x86/xen/enlighten.c | 2 |
7 files changed, 15 insertions, 9 deletions
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 6a07af432c81..22cb3872f6d1 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h | |||
@@ -24,7 +24,6 @@ static inline void load_sp0(struct tss_struct *tss, | |||
24 | PVOP_VCALL2(pv_cpu_ops.load_sp0, tss, thread); | 24 | PVOP_VCALL2(pv_cpu_ops.load_sp0, tss, thread); |
25 | } | 25 | } |
26 | 26 | ||
27 | #define ARCH_SETUP pv_init_ops.arch_setup(); | ||
28 | static inline unsigned long get_wallclock(void) | 27 | static inline unsigned long get_wallclock(void) |
29 | { | 28 | { |
30 | return PVOP_CALL0(unsigned long, pv_time_ops.get_wallclock); | 29 | return PVOP_CALL0(unsigned long, pv_time_ops.get_wallclock); |
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 25922afb6347..a05085e5fdbb 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h | |||
@@ -80,7 +80,6 @@ struct pv_init_ops { | |||
80 | unsigned long addr, unsigned len); | 80 | unsigned long addr, unsigned len); |
81 | 81 | ||
82 | /* Basic arch-specific setup */ | 82 | /* Basic arch-specific setup */ |
83 | void (*arch_setup)(void); | ||
84 | void (*post_allocator_init)(void); | 83 | void (*post_allocator_init)(void); |
85 | 84 | ||
86 | /* Print a banner to identify the environment */ | 85 | /* Print a banner to identify the environment */ |
diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h index 07c37bd879f8..ceffbf358fc0 100644 --- a/arch/x86/include/asm/x86_init.h +++ b/arch/x86/include/asm/x86_init.h | |||
@@ -57,6 +57,14 @@ struct x86_init_irqs { | |||
57 | }; | 57 | }; |
58 | 58 | ||
59 | /** | 59 | /** |
60 | * struct x86_init_oem - oem platform specific customizing functions | ||
61 | * @arch_setup: platform specific architecure setup | ||
62 | */ | ||
63 | struct x86_init_oem { | ||
64 | void (*arch_setup)(void); | ||
65 | }; | ||
66 | |||
67 | /** | ||
60 | * struct x86_init_ops - functions for platform specific setup | 68 | * struct x86_init_ops - functions for platform specific setup |
61 | * | 69 | * |
62 | */ | 70 | */ |
@@ -64,6 +72,7 @@ struct x86_init_ops { | |||
64 | struct x86_init_resources resources; | 72 | struct x86_init_resources resources; |
65 | struct x86_init_mpparse mpparse; | 73 | struct x86_init_mpparse mpparse; |
66 | struct x86_init_irqs irqs; | 74 | struct x86_init_irqs irqs; |
75 | struct x86_init_oem oem; | ||
67 | }; | 76 | }; |
68 | 77 | ||
69 | extern struct x86_init_ops x86_init; | 78 | extern struct x86_init_ops x86_init; |
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index d76bfbec71ae..80275ef1651a 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c | |||
@@ -311,7 +311,6 @@ struct pv_info pv_info = { | |||
311 | struct pv_init_ops pv_init_ops = { | 311 | struct pv_init_ops pv_init_ops = { |
312 | .patch = native_patch, | 312 | .patch = native_patch, |
313 | .banner = default_banner, | 313 | .banner = default_banner, |
314 | .arch_setup = paravirt_nop, | ||
315 | }; | 314 | }; |
316 | 315 | ||
317 | struct pv_time_ops pv_time_ops = { | 316 | struct pv_time_ops pv_time_ops = { |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index bf3b87f1f7db..d12aa82c9c32 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -108,10 +108,6 @@ | |||
108 | #include <asm/numa_64.h> | 108 | #include <asm/numa_64.h> |
109 | #endif | 109 | #endif |
110 | 110 | ||
111 | #ifndef ARCH_SETUP | ||
112 | #define ARCH_SETUP | ||
113 | #endif | ||
114 | |||
115 | /* | 111 | /* |
116 | * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries. | 112 | * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries. |
117 | * The direct mapping extends to max_pfn_mapped, so that we can directly access | 113 | * The direct mapping extends to max_pfn_mapped, so that we can directly access |
@@ -750,7 +746,7 @@ void __init setup_arch(char **cmdline_p) | |||
750 | } | 746 | } |
751 | #endif | 747 | #endif |
752 | 748 | ||
753 | ARCH_SETUP | 749 | x86_init.oem.arch_setup(); |
754 | 750 | ||
755 | setup_memory_map(); | 751 | setup_memory_map(); |
756 | parse_setup_data(); | 752 | parse_setup_data(); |
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c index 9f2b775dc728..fa2d849be35a 100644 --- a/arch/x86/kernel/x86_init.c +++ b/arch/x86/kernel/x86_init.c | |||
@@ -42,4 +42,8 @@ struct __initdata x86_init_ops x86_init = { | |||
42 | .intr_init = native_init_IRQ, | 42 | .intr_init = native_init_IRQ, |
43 | .trap_init = x86_init_noop, | 43 | .trap_init = x86_init_noop, |
44 | }, | 44 | }, |
45 | |||
46 | .oem = { | ||
47 | .arch_setup = x86_init_noop, | ||
48 | }, | ||
45 | }; | 49 | }; |
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 50b20c64f0bd..73c7b1d610f3 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -841,7 +841,6 @@ static const struct pv_init_ops xen_init_ops __initdata = { | |||
841 | .patch = xen_patch, | 841 | .patch = xen_patch, |
842 | 842 | ||
843 | .banner = xen_banner, | 843 | .banner = xen_banner, |
844 | .arch_setup = xen_arch_setup, | ||
845 | .post_allocator_init = xen_post_allocator_init, | 844 | .post_allocator_init = xen_post_allocator_init, |
846 | }; | 845 | }; |
847 | 846 | ||
@@ -982,6 +981,7 @@ asmlinkage void __init xen_start_kernel(void) | |||
982 | pv_mmu_ops = xen_mmu_ops; | 981 | pv_mmu_ops = xen_mmu_ops; |
983 | 982 | ||
984 | x86_init.resources.memory_setup = xen_memory_setup; | 983 | x86_init.resources.memory_setup = xen_memory_setup; |
984 | x86_init.oem.arch_setup = xen_arch_setup; | ||
985 | 985 | ||
986 | #ifdef CONFIG_X86_64 | 986 | #ifdef CONFIG_X86_64 |
987 | /* | 987 | /* |