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