m68k: Fix boot regression on machines with RAM at non-zero
authorGeert Uytterhoeven <geert@linux-m68k.org>
Tue, 8 Jul 2014 07:17:16 +0000 (09:17 +0200)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Thu, 10 Jul 2014 07:58:26 +0000 (09:58 +0200)
My enhancement to store the initial mapping size for later reuse in commit
486df8bc4627bdfc032d11bedcd056cc5343ee62 ("m68k: Increase initial mapping
to 8 or 16 MiB if possible") broke booting on machines where RAM doesn't
start at address zero.

Use pc-relative addressing to fix this.

Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Andreas Schwab <schwab@linux-m68k.org>
arch/m68k/kernel/head.S

index dbb118e1a4e091985724cf27fe4e1ce1e12248a2..a54788458ca36b2c8b3b000825a344bb2778e905 100644 (file)
@@ -921,7 +921,8 @@ L(nocon):
        jls     1f
        lsrl    #1,%d1
 1:
-       movel   %d1,m68k_init_mapped_size
+       lea     %pc@(m68k_init_mapped_size),%a0
+       movel   %d1,%a0@
        mmu_map #PAGE_OFFSET,%pc@(L(phys_kernel_start)),%d1,\
                %pc@(m68k_supervisor_cachemode)