[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-xen-4.5 v3 07/16] x86: Move boot_loader_name from mbi to boot_info
On 08/10/14 18:52, Daniel Kiper wrote: > 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; > + const char *loader_name; No need to have boot twice. ~Andrew > /* > * Info about warning occurred during boot_info initialization. > * NULL if everything went OK. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |