[POWERPC] Fix bug with early ioremap and 64k pages
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 15 Feb 2007 07:29:32 +0000 (18:29 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 16 Feb 2007 03:00:20 +0000 (14:00 +1100)
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>
arch/powerpc/mm/pgtable_64.c

index 16e4ee1c2318e726c8e2bf9df3b6a9b1ec867197..1d443407423ca0b676b9bfc3bd546d3b85a2ed2e 100644 (file)
@@ -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;