x86: Move paravirt banner printout to x86_init_ops
Replace another obscure paravirt magic and move it to x86_init_ops. Such a hook is also useful for embedded and special hardware. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
42bbdb43b1
commit
6f30c1ac3f
|
@ -918,6 +918,8 @@ static inline unsigned long __raw_local_irq_save(void)
|
|||
#undef PVOP_VCALL4
|
||||
#undef PVOP_CALL4
|
||||
|
||||
extern void default_banner(void);
|
||||
|
||||
#else /* __ASSEMBLY__ */
|
||||
|
||||
#define _PVSITE(ptype, clobbers, ops, word, algn) \
|
||||
|
@ -1058,5 +1060,7 @@ static inline unsigned long __raw_local_irq_save(void)
|
|||
#endif /* CONFIG_X86_32 */
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* CONFIG_PARAVIRT */
|
||||
#else /* CONFIG_PARAVIRT */
|
||||
# define default_banner x86_init_noop
|
||||
#endif /* !CONFIG_PARAVIRT */
|
||||
#endif /* _ASM_X86_PARAVIRT_H */
|
||||
|
|
|
@ -81,9 +81,6 @@ struct pv_init_ops {
|
|||
|
||||
/* Basic arch-specific setup */
|
||||
void (*post_allocator_init)(void);
|
||||
|
||||
/* Print a banner to identify the environment */
|
||||
void (*banner)(void);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -59,9 +59,11 @@ struct x86_init_irqs {
|
|||
/**
|
||||
* struct x86_init_oem - oem platform specific customizing functions
|
||||
* @arch_setup: platform specific architecure setup
|
||||
* @banner: print a platform specific banner
|
||||
*/
|
||||
struct x86_init_oem {
|
||||
void (*arch_setup)(void);
|
||||
void (*banner)(void);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -54,7 +54,7 @@ u64 _paravirt_ident_64(u64 x)
|
|||
return x;
|
||||
}
|
||||
|
||||
static void __init default_banner(void)
|
||||
void __init default_banner(void)
|
||||
{
|
||||
printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
|
||||
pv_info.name);
|
||||
|
@ -208,13 +208,6 @@ extern void native_irq_enable_sysexit(void);
|
|||
extern void native_usergs_sysret32(void);
|
||||
extern void native_usergs_sysret64(void);
|
||||
|
||||
static int __init print_banner(void)
|
||||
{
|
||||
pv_init_ops.banner();
|
||||
return 0;
|
||||
}
|
||||
core_initcall(print_banner);
|
||||
|
||||
static struct resource reserve_ioports = {
|
||||
.start = 0,
|
||||
.end = IO_SPACE_LIMIT,
|
||||
|
@ -310,7 +303,6 @@ struct pv_info pv_info = {
|
|||
|
||||
struct pv_init_ops pv_init_ops = {
|
||||
.patch = native_patch,
|
||||
.banner = default_banner,
|
||||
};
|
||||
|
||||
struct pv_time_ops pv_time_ops = {
|
||||
|
|
|
@ -1012,6 +1012,7 @@ void __init setup_arch(char **cmdline_p)
|
|||
conswitchp = &dummy_con;
|
||||
#endif
|
||||
#endif
|
||||
x86_init.oem.banner();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <linux/init.h>
|
||||
|
||||
#include <asm/bios_ebda.h>
|
||||
#include <asm/paravirt.h>
|
||||
#include <asm/mpspec.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/e820.h>
|
||||
|
@ -45,5 +46,6 @@ struct __initdata x86_init_ops x86_init = {
|
|||
|
||||
.oem = {
|
||||
.arch_setup = x86_init_noop,
|
||||
.banner = default_banner,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -840,7 +840,6 @@ static const struct pv_info xen_info __initdata = {
|
|||
static const struct pv_init_ops xen_init_ops __initdata = {
|
||||
.patch = xen_patch,
|
||||
|
||||
.banner = xen_banner,
|
||||
.post_allocator_init = xen_post_allocator_init,
|
||||
};
|
||||
|
||||
|
@ -982,6 +981,7 @@ asmlinkage void __init xen_start_kernel(void)
|
|||
|
||||
x86_init.resources.memory_setup = xen_memory_setup;
|
||||
x86_init.oem.arch_setup = xen_arch_setup;
|
||||
x86_init.oem.banner = xen_banner;
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue