diff options
Diffstat (limited to 'arch/arm/kernel/entry-header.S')
-rw-r--r-- | arch/arm/kernel/entry-header.S | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index 109f4f10d314..9d4d286d3808 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -39,30 +39,19 @@ | |||
39 | #define ARMSWI_OFFSET 0x000f0000 | 39 | #define ARMSWI_OFFSET 0x000f0000 |
40 | 40 | ||
41 | @ | 41 | @ |
42 | @ Stack format (ensured by USER_* and SVC_*) | 42 | @ Most of the stack format comes from struct pt_regs, but with |
43 | @ the addition of 8 bytes for storing syscall args 5 and 6. | ||
43 | @ | 44 | @ |
44 | #define S_FRAME_SIZE 72 | ||
45 | #define S_OLD_R0 68 | ||
46 | #define S_PSR 64 | ||
47 | |||
48 | #define S_PC 60 | ||
49 | #define S_LR 56 | ||
50 | #define S_SP 52 | ||
51 | #define S_IP 48 | ||
52 | #define S_FP 44 | ||
53 | #define S_R10 40 | ||
54 | #define S_R9 36 | ||
55 | #define S_R8 32 | ||
56 | #define S_R7 28 | ||
57 | #define S_R6 24 | ||
58 | #define S_R5 20 | ||
59 | #define S_R4 16 | ||
60 | #define S_R3 12 | ||
61 | #define S_R2 8 | ||
62 | #define S_R1 4 | ||
63 | #define S_R0 0 | ||
64 | #define S_OFF 8 | 45 | #define S_OFF 8 |
65 | 46 | ||
47 | /* | ||
48 | * The SWI code relies on the fact that R0 is at the bottom of the stack | ||
49 | * (due to slow/fast restore user regs). | ||
50 | */ | ||
51 | #if S_R0 != 0 | ||
52 | #error "Please fix" | ||
53 | #endif | ||
54 | |||
66 | #if __LINUX_ARM_ARCH__ >= 6 | 55 | #if __LINUX_ARM_ARCH__ >= 6 |
67 | .macro disable_irq | 56 | .macro disable_irq |
68 | cpsid i | 57 | cpsid i |