aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-05-31 13:02:00 -0400
committerRussell King <rmk@dyn-67.arm.linux.org.uk>2005-05-31 13:02:00 -0400
commit49f680ea7bac5c679fb6374a326a164a3fba07cc (patch)
tree3555b494abcdbd9fdaa1c3722a81c1923af3c922 /arch/arm/kernel
parent791be9b976ba621b21745c30a7fca225fada9110 (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/arm/kernel')
-rw-r--r--arch/arm/kernel/entry-armv.S4
-rw-r--r--arch/arm/kernel/entry-header.S7
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