| .. | .. |
|---|
| 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 |
|---|