|
[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 |