diff options
| -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 | /* |
