Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[ARM] 4074/1: Flat loader stack alignment

The ARM EABI requires doubleword (8-byte) stack alignment at all public entry
points. The patch below makes the bFLT loader honour this.
It's always safe to start with a doubleword aligned stack so it doesn't seem
worth making this conditional on CONFIG_AEABI.

Paul

Signed-off-by: Paul Brook <paul@codesourcery.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Paul Brook and committed by
Russell King
4cc2f7a8 431d2cd9

+3 -1
+3 -1
include/asm-arm/flat.h
··· 5 5 #ifndef __ARM_FLAT_H__ 6 6 #define __ARM_FLAT_H__ 7 7 8 - #define flat_stack_align(sp) /* nothing needed */ 8 + /* An odd number of words will be pushed after this alignment, so 9 + deliberately misalign the value. */ 10 + #define flat_stack_align(sp) sp = (void *)(((unsigned long)(sp) - 4) | 4) 9 11 #define flat_argvp_envp_on_stack() 1 10 12 #define flat_old_ram_flag(flags) (flags) 11 13 #define flat_reloc_valid(reloc, size) ((reloc) <= (size))