[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 33/44] x86/boot: convert initial_images to struct boot_module
The variable initial_images is used for tracking the boot modules passed in by the boot loader. Convert to a struct boot_module and adjust the code that uses it accordingly. Signed-off-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx> --- xen/arch/x86/setup.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 8ba32c6b6bfa..77c0833dd441 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -281,7 +281,7 @@ static const char *cmdline_cook(const char *p, const char *loader_name); /* Max number of boot modules a bootloader can provide in addition to Xen */ #define MAX_NR_BOOTMODS 63 -static const module_t *__initdata initial_images; +static const struct boot_module *__initdata initial_images; static struct boot_info __initdata *boot_info; static void __init multiboot_to_bootinfo(multiboot_info_t *mbi, module_t *mods) @@ -337,8 +337,9 @@ unsigned long __init initial_images_nrpages(nodeid_t node) for ( nr = i = 0; i < boot_info->nr_mods; ++i ) { - unsigned long start = initial_images[i].mod_start; - unsigned long end = start + PFN_UP(initial_images[i].mod_end); + unsigned long start = initial_images[i].early_mod->mod_start; + unsigned long end = start + + PFN_UP(initial_images[i].early_mod->mod_end); if ( end > node_start && node_end > start ) nr += min(node_end, end) - max(node_start, start); @@ -353,10 +354,12 @@ void __init discard_initial_images(void) for ( i = 0; i < boot_info->nr_mods; ++i ) { - uint64_t start = (uint64_t)initial_images[i].mod_start << PAGE_SHIFT; + uint64_t start = + (uint64_t)initial_images[i].early_mod->mod_start << PAGE_SHIFT; init_domheap_pages(start, - start + PAGE_ALIGN(initial_images[i].mod_end)); + start + + PAGE_ALIGN(initial_images[i].early_mod->mod_end)); } boot_info->nr_mods = 0; @@ -1396,7 +1399,7 @@ void asmlinkage __init noreturn __start_xen(unsigned long mbi_p) set_kexec_crash_area_size((u64)nr_pages << PAGE_SHIFT); kexec_reserve_area(); - initial_images = boot_info->mods[0].early_mod; + initial_images = boot_info->mods; for ( i = 0; !efi_enabled(EFI_LOADER) && i < boot_info->nr_mods; i++ ) { -- 2.30.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |