[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080103172235.58c069c9.dada1@cosmosbay.com>
Date: Thu, 3 Jan 2008 17:22:35 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Andi Kleen <ak@...e.de>
Cc: peterz@...radead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH x86] [6/16] Add a new arch_early_alloc() interface for
x86-64
On Thu, 3 Jan 2008 16:42:20 +0100 (CET)
Andi Kleen <ak@...e.de> 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@...radead.org
>
> Signed-off-by: Andi Kleen <ak@...e.de>
>
> ---
> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists