diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2005-05-31 13:02:00 -0400 |
---|---|---|
committer | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2005-05-31 13:02:00 -0400 |
commit | 49f680ea7bac5c679fb6374a326a164a3fba07cc (patch) | |
tree | 3555b494abcdbd9fdaa1c3722a81c1923af3c922 /arch | |
parent | 791be9b976ba621b21745c30a7fca225fada9110 (diff) |
[PATCH] ARM SMP: convert alignment enable
The current vector entry system does not allow for SMP. In
order to work around this, we need to eliminate our reliance
on the fixed save areas, which breaks the way we enable
alignment traps. This patch makes the alignment trap enable
code independent of the way we handle the save areas.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 4 | ||||
-rw-r--r-- | arch/arm/kernel/entry-header.S | 7 |
2 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index a99e686c0b83..cfb5cf5e48fc 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -269,6 +269,8 @@ __pabt_svc: | |||
269 | .word __temp_und | 269 | .word __temp_und |
270 | .LCabt: | 270 | .LCabt: |
271 | .word __temp_abt | 271 | .word __temp_abt |
272 | .LCcralign: | ||
273 | .word cr_alignment | ||
272 | #ifdef MULTI_ABORT | 274 | #ifdef MULTI_ABORT |
273 | .LCprocfns: | 275 | .LCprocfns: |
274 | .word processor | 276 | .word processor |
@@ -311,7 +313,7 @@ __pabt_svc: | |||
311 | @ | 313 | @ |
312 | @ Enable the alignment trap while in kernel mode | 314 | @ Enable the alignment trap while in kernel mode |
313 | @ | 315 | @ |
314 | alignment_trap r7, r0, __temp_\sym | 316 | alignment_trap r0 |
315 | 317 | ||
316 | @ | 318 | @ |
317 | @ Clear FP to mark the first stack frame | 319 | @ Clear FP to mark the first stack frame |
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index a3d40a0e2b04..afef21273963 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -59,11 +59,10 @@ | |||
59 | mov \rd, \rd, lsl #13 | 59 | mov \rd, \rd, lsl #13 |
60 | .endm | 60 | .endm |
61 | 61 | ||
62 | .macro alignment_trap, rbase, rtemp, sym | 62 | .macro alignment_trap, rtemp |
63 | #ifdef CONFIG_ALIGNMENT_TRAP | 63 | #ifdef CONFIG_ALIGNMENT_TRAP |
64 | #define OFF_CR_ALIGNMENT(x) cr_alignment - x | 64 | ldr \rtemp, .LCcralign |
65 | 65 | ldr \rtemp, [\rtemp] | |
66 | ldr \rtemp, [\rbase, #OFF_CR_ALIGNMENT(\sym)] | ||
67 | mcr p15, 0, \rtemp, c1, c0 | 66 | mcr p15, 0, \rtemp, c1, c0 |
68 | #endif | 67 | #endif |
69 | .endm | 68 | .endm |