Re: [PATCH] x86 boot: Pass E820 memory map entries more than 128via linked list of setup data

From: Ingo Molnar
Date: Wed Jun 18 2008 - 07:45:42 EST



* Huang, Ying <ying.huang@xxxxxxxxx> wrote:

> Because of the size limits of struct boot_params (zero page), the
> maximum number of E820 memory map entries can be passed to kernel is
> 128. As pointed by Paul Jackson, there is some machine produced by SGI
> with so many nodes that the number of E820 memory map entries is more
> than 128. To enabling Linux kernel on these system, a new setup data
> type named SETUP_E820_EXT is defined to pass additional memory map
> entries to Linux kernel.
>
> This patch is based on x86/auto-latest branch of git-x86 tree and has
> been tested on x86_64 and i386 platform.

applied to tip/x86/mpparse, thanks.

this bit collided with a recent change:

> - do {
> - u64 start = biosmap->addr;
> - u64 size = biosmap->size;
> - u64 end = start + size;
> - u32 type = biosmap->type;
> -
> - /* Overflow in 64 bits? Ignore the memory map. */
> - if (start > end)
> - return -1;
> -
> - add_memory_region(start, size, type);
> - } while (biosmap++, --nr_map);
> - return 0;
> + return __copy_e820_map(biosmap, nr_map);

because add_memory_region() got renamed to e820_add_region(). I did the
obvious fixup.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/