[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.