diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-02-15 08:29:32 +0100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-02-16 04:00:20 +0100 |
commit | a32525449b30dfbae804f6b05cde041f35f5a811 (patch) | |
tree | 4681e5f9c2a51121c8902ed9d0360a7d9b6b4c2a /arch/powerpc/mm/pgtable_64.c | |
parent | [POWERPC] atomic.h: Add atomic64 cmpxchg, xchg and add_unless to powerpc (diff) | |
download | linux-a32525449b30dfbae804f6b05cde041f35f5a811.tar.xz linux-a32525449b30dfbae804f6b05cde041f35f5a811.zip |
[POWERPC] Fix bug with early ioremap and 64k pages
The code for bolting hash entries for ioremap done before proper
mm initialization has a grown a bug when using 64K pages on a
machine where non-cacheable mappings are demoted to 4K HW pages.
The wrong page size index is being passed to the hash table mapping
functions causing a crash at boot on some pSeries machines using
bare metal linux. This fixes it.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/mm/pgtable_64.c')
-rw-r--r-- | arch/powerpc/mm/pgtable_64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index 16e4ee1c2318..1d443407423c 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c @@ -103,7 +103,7 @@ static int map_io_page(unsigned long ea, unsigned long pa, int flags) * */ if (htab_bolt_mapping(ea, ea + PAGE_SIZE, pa, flags, - mmu_virtual_psize)) { + mmu_io_psize)) { printk(KERN_ERR "Failed to do bolted mapping IO " "memory at %016lx !\n", pa); return -ENOMEM; |