diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-02-15 18:29:32 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-02-16 14:00:20 +1100 |
commit | a32525449b30dfbae804f6b05cde041f35f5a811 (patch) | |
tree | 4681e5f9c2a51121c8902ed9d0360a7d9b6b4c2a /arch/powerpc/mm | |
parent | 41806ef4bfacbe5c4e520d8da2fcedcda335c922 (diff) | |
download | op-kernel-dev-a32525449b30dfbae804f6b05cde041f35f5a811.zip op-kernel-dev-a32525449b30dfbae804f6b05cde041f35f5a811.tar.gz |
[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')
-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 16e4ee1..1d44340 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; |