[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(-)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH] multiboot: Clean up mmap loop and report correct mmap_length,
Austin Clements <=