• Russell King's avatar
    ARM: align .data section · 1abd3502
    Russell King authored
    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: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Tested-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    1abd3502
proc-xscale.S 18.4 KB