Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop.
Unified · Split
| @@ -302,11 +302,7 @@ ENTRY(csky_irq) · 301 unmodified lines | ||
| 302 | 302 | ldw r12, (r9, TINFO_FLAGS) |
| 303 | 303 | btsti r12, TIF_NEED_RESCHED |
| 304 | 304 | bf 2f |
| 305 | −1: | |
| 306 | 305 | jbsr preempt_schedule_irq /* irq en/disable is done inside */ |
| 307 | − ldw r7, (r9, TINFO_FLAGS) /* get new tasks TI_FLAGS */ | |
| 308 | − btsti r7, TIF_NEED_RESCHED | |
| 309 | − bt 1b /* go again */ | |
| 310 | 306 | #endif |
| 311 | 307 | 2: |
| 312 | 308 | jmpi ret_from_exception |