On 17/10/2024 6:02 pm, Daniel P. Smith wrote:
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index a6e77c9ed9fc..6201ca0fad19 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -274,16 +275,28 @@ static int __init cf_check parse_acpi_param(const char 
> *s)
>  custom_param("acpi", parse_acpi_param);
>  
>  static const module_t *__initdata initial_images;
> -static unsigned int __initdata nr_initial_images;
> +
> +struct boot_info __initdata xen_boot_info;
> +
> +static struct boot_info *__init multiboot_fill_boot_info(unsigned long mbi_p)
> +{
> +    struct boot_info *bi = &xen_boot_info;
> +    const multiboot_info_t *mbi = __va(mbi_p);
> +
> +    bi->nr_modules = (mbi->flags & MBI_MODULES) ? mbi->mods_count : 0;

Having looked to end of the series, this and a few other expressions are
still awkward.

The nicer way looks like:

struct boot_info __initdata xen_boot_info = {
    .loader = "unknown",
    .cmdline = "",
};

static struct boot_info *__init multiboot_fill_boot_info(unsigned long
mbi_p)
{
    struct boot_info *bi = &xen_boot_info;
    const multiboot_info_t *mbi = __va(mbi_p);
    module_t *mods = __va(mbi->mods_addr);
    unsigned int i;

    if ( mbi->flags & MBI_MODULES )
        bi->nr_modules = mbi->mods_count;

    if ( mbi->flags & MBI_LOADERNAME )
        bi->loader = __va(mbi->boot_loader_name);

    if ( mbi->flags & MBI_CMDLINE )
        bi->cmdline = cmdline_cook(__va(mbi->cmdline), bi->loader);

    if ( mbi->flags & MBI_MEMMAP )
    {
        bi->memmap_addr = mbi->mmap_addr;
        bi->memmap_length = mbi->mmap_length;
    }


which is easier to read and follow.  Thoughts?

~Andrew

Reply via email to