aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/pgtable_64.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2007-02-15 02:29:32 -0500
committerPaul Mackerras <paulus@samba.org>2007-02-15 22:00:20 -0500
commita32525449b30dfbae804f6b05cde041f35f5a811 (patch)
tree4681e5f9c2a51121c8902ed9d0360a7d9b6b4c2a /arch/powerpc/mm/pgtable_64.c
parent41806ef4bfacbe5c4e520d8da2fcedcda335c922 (diff)
[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.c2
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)
103 * 103 *
104 */ 104 */
105 if (htab_bolt_mapping(ea, ea + PAGE_SIZE, pa, flags, 105 if (htab_bolt_mapping(ea, ea + PAGE_SIZE, pa, flags,
106 mmu_virtual_psize)) { 106 mmu_io_psize)) {
107 printk(KERN_ERR "Failed to do bolted mapping IO " 107 printk(KERN_ERR "Failed to do bolted mapping IO "
108 "memory at %016lx !\n", pa); 108 "memory at %016lx !\n", pa);
109 return -ENOMEM; 109 return -ENOMEM;