[PATCH] ARM SMP: convert alignment enable
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Tue, 31 May 2005 17:02:00 +0000 (18:02 +0100)
committerRussell King <rmk@dyn-67.arm.linux.org.uk>
Tue, 31 May 2005 17:02:00 +0000 (18:02 +0100)
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>
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-header.S

index a99e686c0b83861cbcfa07e0abef044e05a7f8fb..cfb5cf5e48fc3e6c96827420a29430f51c8193d3 100644 (file)
@@ -269,6 +269,8 @@ __pabt_svc:
        .word   __temp_und
 .LCabt:
        .word   __temp_abt
+.LCcralign:
+       .word   cr_alignment
 #ifdef MULTI_ABORT
 .LCprocfns:
        .word   processor
@@ -311,7 +313,7 @@ __pabt_svc:
        @
        @ Enable the alignment trap while in kernel mode
        @
-       alignment_trap r7, r0, __temp_\sym
+       alignment_trap r0
 
        @
        @ Clear FP to mark the first stack frame
index a3d40a0e2b0479032a6d2f7126d64fb2ea626215..afef21273963a6599fde7330e555f52f302faf60 100644 (file)
        mov     \rd, \rd, lsl #13
        .endm
 
-       .macro  alignment_trap, rbase, rtemp, sym
+       .macro  alignment_trap, rtemp
 #ifdef CONFIG_ALIGNMENT_TRAP
-#define OFF_CR_ALIGNMENT(x)    cr_alignment - x
-
-       ldr     \rtemp, [\rbase, #OFF_CR_ALIGNMENT(\sym)]
+       ldr     \rtemp, .LCcralign
+       ldr     \rtemp, [\rtemp]
        mcr     p15, 0, \rtemp, c1, c0
 #endif
        .endm