ARM: align .data section
authorRussell King <rmk+kernel@armlinux.org.uk>
Wed, 26 Jul 2017 11:49:31 +0000 (12:49 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Mon, 14 Aug 2017 15:22:55 +0000 (16:22 +0100)
commit1abd35023763c099bf4ee7558faa261d5c9d5025
tree9061bc04ffc6fe004f3405c0c28869a531fb4167
parentce184a0dee92a0a333236a26478e304dca29a3df
ARM: align .data section

Robert Jarzmik reports that his PXA25x system fails to boot with 4.12,
failing at __flush_whole_cache in arch/arm/mm/proc-xscale.S:215:

   0xc0019e20 <+0>:     ldr     r1, [pc, #788]
   0xc0019e24 <+4>:     ldr     r0, [r1] <== here

with r1 containing 0xc06f82cd, which is the address of "clean_addr".
Examination of the System.map shows:

c06f22c8 D user_pmd_table
c06f22cc d __warned.19178
c06f22cd d clean_addr

indicating that a .data.unlikely section has appeared just before the
.data section from proc-xscale.S.  According to objdump -h, it appears
that our assembly files default their .data alignment to 2**0, which
is bad news if the preceding .data section size is not power-of-2
aligned at link time.

Add the appropriate .align directives to all assembly files in arch/arm
that are missing them where we require an appropriate alignment.

Reported-by: Robert Jarzmik <robert.jarzmik@free.fr>
Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
13 files changed:
arch/arm/include/debug/omap2plus.S
arch/arm/kernel/entry-armv.S
arch/arm/kernel/head.S
arch/arm/kernel/hyp-stub.S
arch/arm/kernel/iwmmxt.S
arch/arm/kernel/sleep.S
arch/arm/mach-exynos/sleep.S
arch/arm/mach-omap2/sleep34xx.S
arch/arm/mach-omap2/sleep44xx.S
arch/arm/mach-pxa/mioa701_bootresume.S
arch/arm/mach-rockchip/sleep.S
arch/arm/mm/cache-v4wb.S
arch/arm/mm/proc-xscale.S