From: Michael Ellerman Date: Wed, 12 Mar 2008 07:03:24 +0000 (+1100) Subject: [POWERPC] Fix large hash table allocation on Cell blades X-Git-Tag: v2.6.25-rc6~30^2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31bf111944e31b64a7b692f9d660f71c5ff3d419;p=linux-2.6 [POWERPC] Fix large hash table allocation on Cell blades My recent hack to allocate the hash table under 1GB on cell was poorly tested, *cough*. It turns out on blades with large amounts of memory we fail to allocate the hash table at all. This is because RTAS has been instantiated just below 768MB, and 0-x MB are used by the kernel, leaving no areas that are both large enough and also naturally-aligned. For the cell IOMMU hack the page tables must be under 2GB, so use that as the limit instead. This has been tested on real hardware and boots happily. Signed-off-by: Michael Ellerman Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 32f416175d..590f1f67c8 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c @@ -506,10 +506,10 @@ void __init htab_initialize(void) } else { /* Find storage for the HPT. Must be contiguous in * the absolute address space. On cell we want it to be - * in the first 1 Gig. + * in the first 2 Gig so we can use it for IOMMU hacks. */ if (machine_is(cell)) - limit = 0x40000000; + limit = 0x80000000; else limit = 0;