.. | .. |
---|
626 | 626 | mrs x0, daif |
---|
627 | 627 | orr x24, x24, x0 |
---|
628 | 628 | alternative_else_nop_endif |
---|
629 | | - |
---|
630 | | - cbz x24, 1f // (need_resched + count) == 0 |
---|
631 | | - cbnz w24, 2f // count != 0 |
---|
632 | | - |
---|
633 | | - ldr w24, [tsk, #TSK_TI_PREEMPT_LAZY] // get preempt lazy count |
---|
634 | | - cbnz w24, 2f // preempt lazy count != 0 |
---|
635 | | - |
---|
636 | | - ldr x0, [tsk, #TSK_TI_FLAGS] // get flags |
---|
637 | | - tbz x0, #TIF_NEED_RESCHED_LAZY, 2f // needs rescheduling? |
---|
| 629 | + cbnz x24, 1f // preempt count != 0 || NMI return path |
---|
| 630 | + bl arm64_preempt_schedule_irq // irq en/disable is done inside |
---|
638 | 631 | 1: |
---|
639 | | - bl arm64_preempt_schedule_irq // irq en/disable is done inside |
---|
640 | | -2: |
---|
641 | 632 | #endif |
---|
642 | 633 | |
---|
643 | 634 | mov x0, sp |
---|