[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-xen-4.5 v3 07/16] x86: Move boot_loader_name from mbi to boot_info
Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx> --- xen/arch/x86/boot_info.c | 11 ++++++----- xen/arch/x86/efi/efi-boot.h | 3 +-- xen/arch/x86/setup.c | 13 +++++-------- xen/common/efi/runtime.c | 1 + xen/include/asm-x86/boot_info.h | 3 +++ 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/xen/arch/x86/boot_info.c b/xen/arch/x86/boot_info.c index 83bd255..5851123 100644 --- a/xen/arch/x86/boot_info.c +++ b/xen/arch/x86/boot_info.c @@ -27,6 +27,7 @@ static multiboot_info_t __read_mostly mbi; static boot_info_t __read_mostly boot_info_mb = { + .boot_loader_name = "UNKNOWN", .warn_msg = NULL, .err_msg = NULL }; @@ -39,11 +40,6 @@ unsigned long __init __init_mbi(u32 mbd_pa) enable_exception_support(); - if ( mbd->boot_loader_name ) { - mbi.flags = MBI_LOADERNAME; - mbi.boot_loader_name = mbd->boot_loader_name; - } - if ( mbd->cmdline ) { mbi.flags |= MBI_CMDLINE; mbi.cmdline = mbd->cmdline; @@ -66,5 +62,10 @@ unsigned long __init __init_mbi(u32 mbd_pa) paddr_t __init __init_boot_info(u32 mbd_pa) { + mbd_t *mbd = __va(mbd_pa); + + if ( mbd->boot_loader_name ) + boot_info_mb.boot_loader_name = __va(mbd->boot_loader_name); + return __pa(&boot_info_mb); } diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h index 6d7c222..29504e9 100644 --- a/xen/arch/x86/efi/efi-boot.h +++ b/xen/arch/x86/efi/efi-boot.h @@ -11,7 +11,7 @@ static struct file __initdata ucode; static multiboot_info_t __initdata mbi = { - .flags = MBI_MODULES | MBI_LOADERNAME + .flags = MBI_MODULES }; static module_t __initdata mb_modules[3]; @@ -310,7 +310,6 @@ static void __init efi_arch_handle_cmdline(CHAR16 *image_name, * These must not be initialized statically, since the value must * not get relocated when processing base relocations later. */ - mbi.boot_loader_name = (long)"EFI"; mbi.mods_addr = (long)mb_modules; } diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index d2a1450..c4642f3 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -554,7 +554,7 @@ void __init enable_exception_support(void) void __init noreturn __start_xen(unsigned long mbi_p, paddr_t boot_info_pa) { char *memmap_type = NULL; - char *cmdline, *kextra, *loader; + char *cmdline, *kextra; unsigned int initrdidx, domcr_flags = DOMCRF_s3_integrity; multiboot_info_t *mbi = __va(mbi_p); module_t *mod = (module_t *)__va(mbi->mods_addr); @@ -578,13 +578,10 @@ void __init noreturn __start_xen(unsigned long mbi_p, paddr_t boot_info_pa) /* Exception support was enabled before __start_xen() call. */ } - loader = (mbi->flags & MBI_LOADERNAME) - ? (char *)__va(mbi->boot_loader_name) : "unknown"; - /* Parse the command-line options. */ cmdline = cmdline_cook((mbi->flags & MBI_CMDLINE) ? __va(mbi->cmdline) : NULL, - loader); + boot_info->boot_loader_name); if ( (kextra = strstr(cmdline, " -- ")) != NULL ) { /* @@ -624,7 +621,7 @@ void __init noreturn __start_xen(unsigned long mbi_p, paddr_t boot_info_pa) if ( boot_info->warn_msg ) printk(boot_info->warn_msg); - printk("Bootloader: %s\n", loader); + printk("Bootloader: %s\n", boot_info->boot_loader_name); printk("Command line: %s\n", cmdline); @@ -698,7 +695,7 @@ void __init noreturn __start_xen(unsigned long mbi_p, paddr_t boot_info_pa) l3_bootmap[l3_table_offset(BOOTSTRAP_MAP_BASE)] = l3e_from_paddr(__pa(l2_bootmap), __PAGE_HYPERVISOR); - memmap_type = loader; + memmap_type = boot_info->boot_loader_name; } else if ( e820_raw_nr != 0 ) { @@ -1380,7 +1377,7 @@ void __init noreturn __start_xen(unsigned long mbi_p, paddr_t boot_info_pa) { static char __initdata dom0_cmdline[MAX_GUEST_CMDLINE]; - cmdline = cmdline_cook(cmdline, loader); + cmdline = cmdline_cook(cmdline, boot_info->boot_loader_name); safe_strcpy(dom0_cmdline, cmdline); if ( kextra != NULL ) diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c index eb0acae..7846b2b 100644 --- a/xen/common/efi/runtime.c +++ b/xen/common/efi/runtime.c @@ -54,6 +54,7 @@ const struct efi_pci_rom *__read_mostly efi_pci_roms; #ifndef CONFIG_ARM /* TODO - disabled until implemented on ARM */ boot_info_t __read_mostly boot_info_efi = { + .boot_loader_name = "EFI", .warn_msg = NULL, .err_msg = NULL }; diff --git a/xen/include/asm-x86/boot_info.h b/xen/include/asm-x86/boot_info.h index 9ff3c0f..58a4cb6 100644 --- a/xen/include/asm-x86/boot_info.h +++ b/xen/include/asm-x86/boot_info.h @@ -29,6 +29,9 @@ * are compatible as much as possible with relevant EFI/ACPI types. */ typedef struct { + /* Boot loader name. */ + char *boot_loader_name; + /* * Info about warning occurred during boot_info initialization. * NULL if everything went OK. -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |