Re: [PATCH x86] [6/16] Add a new arch_early_alloc() interface forx86-64

From: Eric Dumazet
Date: Thu Jan 03 2008 - 11:22:49 EST


On Thu, 3 Jan 2008 16:42:20 +0100 (CET)
Andi Kleen <ak@xxxxxxx> wrote:

>
> This allows to allocate memory really early before bootmem is setup.
>
> And a symbol that can be tested by the preprocessor.
>
> pgtable.h is probably not the best include for it, but also not the worst.
>
> Cc: peterz@xxxxxxxxxxxxx
>
> Signed-off-by: Andi Kleen <ak@xxxxxxx>
>
> ---
> arch/x86/kernel/e820_64.c | 14 ++++++++++++++
> include/asm-x86/pgtable_64.h | 3 +++
> 2 files changed, 17 insertions(+)
>
> Index: linux/arch/x86/kernel/e820_64.c
> ===================================================================
> --- linux.orig/arch/x86/kernel/e820_64.c
> +++ linux/arch/x86/kernel/e820_64.c
> @@ -819,3 +819,17 @@ int __init arch_get_ram_range(int slot,
> max_pfn << PAGE_SHIFT) - *addr;
> return i + 1;
> }
> +
> +#define EARLY_ALLOC_START (32<<20)
> +__init void *arch_early_alloc(unsigned long size)
> +{
> + unsigned long p = find_e820_area(EARLY_ALLOC_START, -1UL, size);
> + if (p == -1ULL) {
> + /* Risk filling the DMA zone */
> + p = find_e820_area(EARLY_ALLOC_START, -1UL, size);

Hum... Are you sure of this EARLY_ALLOC_START here ?

> + if (p == -1ULL)
> + panic("arch_early_alloc %lu failed", size);
> + }
> + reserve_early(p, p + size);
> + return __va(p);
> +}

--
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/