| .. | .. |
|---|
| 393 | 393 | MTMSRD(r10) |
|---|
| 394 | 394 | lwz r9,TI_FLAGS(r12) |
|---|
| 395 | 395 | li r8,-MAX_ERRNO |
|---|
| 396 | | - andi. r0,r9,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK) |
|---|
| 396 | + lis r0,(_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)@h |
|---|
| 397 | + ori r0,r0, (_TIF_SYSCALL_DOTRACE|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)@l |
|---|
| 398 | + and. r0,r9,r0 |
|---|
| 397 | 399 | bne- syscall_exit_work |
|---|
| 398 | 400 | cmplw 0,r3,r8 |
|---|
| 399 | 401 | blt+ syscall_exit_cont |
|---|
| .. | .. |
|---|
| 511 | 513 | b syscall_dotrace_cont |
|---|
| 512 | 514 | |
|---|
| 513 | 515 | syscall_exit_work: |
|---|
| 514 | | - andi. r0,r9,_TIF_RESTOREALL |
|---|
| 516 | + andis. r0,r9,_TIF_RESTOREALL@h |
|---|
| 515 | 517 | beq+ 0f |
|---|
| 516 | 518 | REST_NVGPRS(r1) |
|---|
| 517 | 519 | b 2f |
|---|
| 518 | 520 | 0: cmplw 0,r3,r8 |
|---|
| 519 | 521 | blt+ 1f |
|---|
| 520 | | - andi. r0,r9,_TIF_NOERROR |
|---|
| 522 | + andis. r0,r9,_TIF_NOERROR@h |
|---|
| 521 | 523 | bne- 1f |
|---|
| 522 | 524 | lwz r11,_CCR(r1) /* Load CR */ |
|---|
| 523 | 525 | neg r3,r3 |
|---|
| .. | .. |
|---|
| 526 | 528 | |
|---|
| 527 | 529 | 1: stw r6,RESULT(r1) /* Save result */ |
|---|
| 528 | 530 | stw r3,GPR3(r1) /* Update return value */ |
|---|
| 529 | | -2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) |
|---|
| 531 | +2: andis. r0,r9,(_TIF_PERSYSCALL_MASK)@h |
|---|
| 530 | 532 | beq 4f |
|---|
| 531 | 533 | |
|---|
| 532 | 534 | /* Clear per-syscall TIF flags if any are set. */ |
|---|
| 533 | 535 | |
|---|
| 534 | | - li r11,_TIF_PERSYSCALL_MASK |
|---|
| 536 | + lis r11,_TIF_PERSYSCALL_MASK@h |
|---|
| 535 | 537 | addi r12,r12,TI_FLAGS |
|---|
| 536 | 538 | 3: lwarx r8,0,r12 |
|---|
| 537 | 539 | andc r8,r8,r11 |
|---|
| .. | .. |
|---|
| 888 | 890 | cmpwi 0,r0,0 /* if non-zero, just restore regs and return */ |
|---|
| 889 | 891 | bne restore |
|---|
| 890 | 892 | andi. r8,r8,_TIF_NEED_RESCHED |
|---|
| 893 | + bne+ 1f |
|---|
| 894 | + lwz r0,TI_PREEMPT_LAZY(r9) |
|---|
| 895 | + cmpwi 0,r0,0 /* if non-zero, just restore regs and return */ |
|---|
| 896 | + bne restore |
|---|
| 897 | + lwz r0,TI_FLAGS(r9) |
|---|
| 898 | + andi. r0,r0,_TIF_NEED_RESCHED_LAZY |
|---|
| 891 | 899 | beq+ restore |
|---|
| 900 | +1: |
|---|
| 892 | 901 | lwz r3,_MSR(r1) |
|---|
| 893 | 902 | andi. r0,r3,MSR_EE /* interrupts off? */ |
|---|
| 894 | 903 | beq restore /* don't schedule if so */ |
|---|
| .. | .. |
|---|
| 899 | 908 | */ |
|---|
| 900 | 909 | bl trace_hardirqs_off |
|---|
| 901 | 910 | #endif |
|---|
| 902 | | -1: bl preempt_schedule_irq |
|---|
| 911 | +2: bl preempt_schedule_irq |
|---|
| 903 | 912 | CURRENT_THREAD_INFO(r9, r1) |
|---|
| 904 | 913 | lwz r3,TI_FLAGS(r9) |
|---|
| 905 | | - andi. r0,r3,_TIF_NEED_RESCHED |
|---|
| 906 | | - bne- 1b |
|---|
| 914 | + andi. r0,r3,_TIF_NEED_RESCHED_MASK |
|---|
| 915 | + bne- 2b |
|---|
| 907 | 916 | #ifdef CONFIG_TRACE_IRQFLAGS |
|---|
| 908 | 917 | /* And now, to properly rebalance the above, we tell lockdep they |
|---|
| 909 | 918 | * are being turned back on, which will happen when we return |
|---|
| .. | .. |
|---|
| 1232 | 1241 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ |
|---|
| 1233 | 1242 | |
|---|
| 1234 | 1243 | do_work: /* r10 contains MSR_KERNEL here */ |
|---|
| 1235 | | - andi. r0,r9,_TIF_NEED_RESCHED |
|---|
| 1244 | + andi. r0,r9,_TIF_NEED_RESCHED_MASK |
|---|
| 1236 | 1245 | beq do_user_signal |
|---|
| 1237 | 1246 | |
|---|
| 1238 | 1247 | do_resched: /* r10 contains MSR_KERNEL here */ |
|---|
| .. | .. |
|---|
| 1253 | 1262 | MTMSRD(r10) /* disable interrupts */ |
|---|
| 1254 | 1263 | CURRENT_THREAD_INFO(r9, r1) |
|---|
| 1255 | 1264 | lwz r9,TI_FLAGS(r9) |
|---|
| 1256 | | - andi. r0,r9,_TIF_NEED_RESCHED |
|---|
| 1265 | + andi. r0,r9,_TIF_NEED_RESCHED_MASK |
|---|
| 1257 | 1266 | bne- do_resched |
|---|
| 1258 | 1267 | andi. r0,r9,_TIF_USER_WORK_MASK |
|---|
| 1259 | 1268 | beq restore_user |
|---|