qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] multiboot: Clean up mmap loop and report correc


From: Austin Clements
Subject: Re: [Qemu-devel] [PATCH] multiboot: Clean up mmap loop and report correct mmap_length
Date: Mon, 22 Apr 2013 13:57:04 -0400
User-agent: Mutt/1.5.21 (2010-09-15)

Ping.  I never heard back about this bug fix to the multiboot loader.

Quoth myself on Mar 14 at  6:55 pm:
> Previously, the multiboot option ROM set the mmap_length field of the
> multiboot info structure to the length of the mmap array *excluding*
> the final element of the array, rather than the total length of the
> array.  The multiboot specification indicates that this is incorrect,
> and it's incompatible with GRUB's [1] and SYSLINUX's [2] multiboot
> loaders, which both set mmap_length to the length of the entire mmap
> array.
> 
> This bug is easy to miss: if the VM is configured with 3584 MB of RAM
> or less, the last E820 entry is simply a reserved region that does not
> overlap with any other region, so there's no harm in omitting it.
> However, if it's started with more than 3584 MB of RAM, the memory
> above the high memory hole appears as the last entry in the E820 map
> and will be omitted from the multiboot mmap array.
> 
> This patch rewrites the loop that constructs the mmap array from the
> E820 map to simplify it and fix the final mmap_length value.
> 
> [1] grub-core/loader/i386/multiboot_mbi.c:grub_multiboot_make_mbi
> 
> [2] com32/mboot/mem.c:mboot_make_memmap
> 
> Signed-off-by: Austin Clements <address@hidden>
> ---
>  pc-bios/multiboot.bin         |  Bin 1024 -> 1024 bytes
>  pc-bios/optionrom/multiboot.S |   25 +++++++++----------------
>  2 files changed, 9 insertions(+), 16 deletions(-)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]