Переглянути джерело

[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>
Paul Brook 18 роки тому
батько
коміт
4cc2f7a84d
1 змінених файлів з 3 додано та 1 видалено
  1. 3 1
      include/asm-arm/flat.h

+ 3 - 1
include/asm-arm/flat.h

@@ -5,7 +5,9 @@
 #ifndef __ARM_FLAT_H__
 #define __ARM_FLAT_H__
 
-#define	flat_stack_align(sp)			/* nothing needed */
+/* An odd number of words will be pushed after this alignment, so
+   deliberately misalign the value.  */
+#define	flat_stack_align(sp)	sp = (void *)(((unsigned long)(sp) - 4) | 4)
 #define	flat_argvp_envp_on_stack()		1
 #define	flat_old_ram_flag(flags)		(flags)
 #define	flat_reloc_valid(reloc, size)		((reloc) <= (size))