summaryrefslogtreecommitdiffstats
path: root/kernel/arch/arm/kernel/entry-armv.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/arm/kernel/entry-armv.S')
-rw-r--r--kernel/arch/arm/kernel/entry-armv.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/arch/arm/kernel/entry-armv.S b/kernel/arch/arm/kernel/entry-armv.S
index d66b1aef2..d044cea59 100644
--- a/kernel/arch/arm/kernel/entry-armv.S
+++ b/kernel/arch/arm/kernel/entry-armv.S
@@ -244,7 +244,11 @@ svc_preempt:
bne 1b
tst r0, #_TIF_NEED_RESCHED_LAZY
reteq r8 @ go again
- b 1b
+ ldr r0, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
+ teq r0, #0 @ if preempt lazy count != 0
+ beq 1b
+ ret r8 @ go again
+
#endif
__und_fault: