Skip to content

Commit

Permalink
x86/boot: Drop the mbi and mod pointers in __start_xen()
Browse files Browse the repository at this point in the history
We can't drop them fully yet, but we can limit their scope to almost nothing,
which serves the same purpose.

This removes the ability to accidentally reintroduce buggy uses of
__va(mbi->mods_addr).

No functional change.

Signed-off-by: Andrew Cooper <[email protected]>
Reviewed-by: Daniel P. Smith <[email protected]>
  • Loading branch information
andyhhp committed Oct 24, 2024
1 parent d03dfab commit 83892f6
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions xen/arch/x86/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -1026,8 +1026,6 @@ void asmlinkage __init noreturn __start_xen(void)
struct cpu_info *info = get_cpu_info(), *bsp_info;
unsigned int initrdidx, num_parked = 0;
struct boot_info *bi;
multiboot_info_t *mbi;
module_t *mod;
unsigned long nr_pages, raw_max_page, modules_headroom, module_map[1];
int i, j, e820_warn = 0, bytes = 0;
unsigned long eb_start, eb_end;
Expand Down Expand Up @@ -1063,16 +1061,22 @@ void asmlinkage __init noreturn __start_xen(void)

if ( pvh_boot )
{
multiboot_info_t *mbi;
module_t *mod;

pvh_init(&mbi, &mod);
/*
* mbi and mod are regular pointers to .initdata. These remain valid
* across move_xen().
*/

bi = multiboot_fill_boot_info(mbi, mod);
}
else
{
mbi = __va(multiboot_ptr);
mod = __va(mbi->mods_addr);
multiboot_info_t *mbi = __va(multiboot_ptr);

bi = multiboot_fill_boot_info(mbi, __va(mbi->mods_addr));

/*
* For MB1/2, mbi and mod are directmap pointers into the trampoline.
Expand All @@ -1085,12 +1089,8 @@ void asmlinkage __init noreturn __start_xen(void)
ASSERT(multiboot_ptr < MB(1) || xen_phys_start);
}

bi = multiboot_fill_boot_info(mbi, mod);
bi->module_map = module_map; /* Temporary */

/* Use bi-> instead */
#define mbi DO_NOT_USE

/* Parse the command-line options. */
if ( (kextra = strstr(bi->cmdline, " -- ")) != NULL )
{
Expand Down

0 comments on commit 83892f6

Please sign in to comment.