powerpc: Align TOC to 256 bytes
authorAnton Blanchard <anton@samba.org>
Thu, 14 May 2015 04:45:40 +0000 (14:45 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 14 May 2015 06:59:21 +0000 (16:59 +1000)
Recent toolchains force the TOC to be 256 byte aligned. We need
to enforce this alignment in our linker script, otherwise pointers
to our TOC variables (__toc_start, __prom_init_toc_start) could
be incorrect.

If they are bad, we die a few hundred instructions into boot.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/vmlinux.lds.S

index f096e72..1db6851 100644 (file)
@@ -213,6 +213,7 @@ SECTIONS
                *(.opd)
        }
 
+       . = ALIGN(256);
        .got : AT(ADDR(.got) - LOAD_OFFSET) {
                __toc_start = .;
 #ifndef CONFIG_RELOCATABLE