Make casuword() atomic for armv6
This commit is contained in:
parent
884c8e4fea
commit
e49341e87c
@ -67,11 +67,27 @@ ENTRY(casuword)
|
||||
stmfd sp!, {r4, r5}
|
||||
adr r4, .Lcasuwordfault
|
||||
str r4, [r3, #PCB_ONFAULT]
|
||||
#ifdef _ARM_ARCH_6
|
||||
1:
|
||||
cmp r0, #KERNBASE
|
||||
mvnge r0, #0
|
||||
bge 2f
|
||||
|
||||
ldrex r5, [r0]
|
||||
cmp r5, r1
|
||||
movne r0, r5
|
||||
bne 2f
|
||||
strex r5, r2, [r0]
|
||||
cmp r5, #0
|
||||
bne 1b
|
||||
#else
|
||||
ldrt r5, [r0]
|
||||
cmp r5, r1
|
||||
movne r0, r5
|
||||
streqt r2, [r0]
|
||||
#endif
|
||||
moveq r0, r1
|
||||
2:
|
||||
ldmfd sp!, {r4, r5}
|
||||
mov r1, #0x00000000
|
||||
str r1, [r3, #PCB_ONFAULT]
|
||||
|
Loading…
x
Reference in New Issue
Block a user