hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/arch/arm/kernel/entry-armv.S
....@@ -206,18 +206,11 @@
206206
207207 #ifdef CONFIG_PREEMPTION
208208 ldr r8, [tsk, #TI_PREEMPT] @ get preempt count
209
- teq r8, #0 @ if preempt count != 0
210
- bne 1f @ return from exeption
211209 ldr r0, [tsk, #TI_FLAGS] @ get flags
212
- tst r0, #_TIF_NEED_RESCHED @ if NEED_RESCHED is set
213
- blne svc_preempt @ preempt!
214
-
215
- ldr r8, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
216
- teq r8, #0 @ if preempt lazy count != 0
210
+ teq r8, #0 @ if preempt count != 0
217211 movne r0, #0 @ force flags to 0
218
- tst r0, #_TIF_NEED_RESCHED_LAZY
212
+ tst r0, #_TIF_NEED_RESCHED
219213 blne svc_preempt
220
-1:
221214 #endif
222215
223216 svc_exit r5, irq = 1 @ return from exception
....@@ -232,14 +225,8 @@
232225 1: bl preempt_schedule_irq @ irq en/disable is done inside
233226 ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS
234227 tst r0, #_TIF_NEED_RESCHED
235
- bne 1b
236
- tst r0, #_TIF_NEED_RESCHED_LAZY
237228 reteq r8 @ go again
238
- ldr r0, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
239
- teq r0, #0 @ if preempt lazy count != 0
240
- beq 1b
241
- ret r8 @ go again
242
-
229
+ b 1b
243230 #endif
244231
245232 __und_fault: