powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:

committed by
Benjamin Herrenschmidt

parent
db9112173b
commit
9778b696a0
@@ -92,7 +92,7 @@ crit_transfer_to_handler:
|
||||
mfspr r8,SPRN_SPRG_THREAD
|
||||
lwz r0,KSP_LIMIT(r8)
|
||||
stw r0,SAVED_KSP_LIMIT(r11)
|
||||
rlwimi r0,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r0, r1)
|
||||
stw r0,KSP_LIMIT(r8)
|
||||
/* fall through */
|
||||
#endif
|
||||
@@ -112,7 +112,7 @@ crit_transfer_to_handler:
|
||||
mfspr r8,SPRN_SPRG_THREAD
|
||||
lwz r0,KSP_LIMIT(r8)
|
||||
stw r0,saved_ksp_limit@l(0)
|
||||
rlwimi r0,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r0, r1)
|
||||
stw r0,KSP_LIMIT(r8)
|
||||
/* fall through */
|
||||
#endif
|
||||
@@ -158,7 +158,7 @@ transfer_to_handler:
|
||||
tophys(r11,r11)
|
||||
addi r11,r11,global_dbcr0@l
|
||||
#ifdef CONFIG_SMP
|
||||
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
lwz r9,TI_CPU(r9)
|
||||
slwi r9,r9,3
|
||||
add r11,r11,r9
|
||||
@@ -179,7 +179,7 @@ transfer_to_handler:
|
||||
ble- stack_ovf /* then the kernel stack overflowed */
|
||||
5:
|
||||
#if defined(CONFIG_6xx) || defined(CONFIG_E500)
|
||||
rlwinm r9,r1,0,0,31-THREAD_SHIFT
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
tophys(r9,r9) /* check local flags */
|
||||
lwz r12,TI_LOCAL_FLAGS(r9)
|
||||
mtcrf 0x01,r12
|
||||
@@ -333,7 +333,7 @@ _GLOBAL(DoSyscall)
|
||||
mtmsr r11
|
||||
1:
|
||||
#endif /* CONFIG_TRACE_IRQFLAGS */
|
||||
rlwinm r10,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
|
||||
CURRENT_THREAD_INFO(r10, r1)
|
||||
lwz r11,TI_FLAGS(r10)
|
||||
andi. r11,r11,_TIF_SYSCALL_T_OR_A
|
||||
bne- syscall_dotrace
|
||||
@@ -354,7 +354,7 @@ ret_from_syscall:
|
||||
bl do_show_syscall_exit
|
||||
#endif
|
||||
mr r6,r3
|
||||
rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
|
||||
CURRENT_THREAD_INFO(r12, r1)
|
||||
/* disable interrupts so current_thread_info()->flags can't change */
|
||||
LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */
|
||||
/* Note: We don't bother telling lockdep about it */
|
||||
@@ -815,7 +815,7 @@ ret_from_except:
|
||||
|
||||
user_exc_return: /* r10 contains MSR_KERNEL here */
|
||||
/* Check current_thread_info()->flags */
|
||||
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
lwz r9,TI_FLAGS(r9)
|
||||
andi. r0,r9,_TIF_USER_WORK_MASK
|
||||
bne do_work
|
||||
@@ -835,7 +835,7 @@ restore_user:
|
||||
/* N.B. the only way to get here is from the beq following ret_from_except. */
|
||||
resume_kernel:
|
||||
/* check current_thread_info->preempt_count */
|
||||
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
lwz r0,TI_PREEMPT(r9)
|
||||
cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
|
||||
bne restore
|
||||
@@ -852,7 +852,7 @@ resume_kernel:
|
||||
bl trace_hardirqs_off
|
||||
#endif
|
||||
1: bl preempt_schedule_irq
|
||||
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
lwz r3,TI_FLAGS(r9)
|
||||
andi. r0,r3,_TIF_NEED_RESCHED
|
||||
bne- 1b
|
||||
@@ -1122,7 +1122,7 @@ ret_from_debug_exc:
|
||||
lwz r10,SAVED_KSP_LIMIT(r1)
|
||||
stw r10,KSP_LIMIT(r9)
|
||||
lwz r9,THREAD_INFO-THREAD(r9)
|
||||
rlwinm r10,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r10, r1)
|
||||
lwz r10,TI_PREEMPT(r10)
|
||||
stw r10,TI_PREEMPT(r9)
|
||||
RESTORE_xSRR(SRR0,SRR1);
|
||||
@@ -1156,7 +1156,7 @@ load_dbcr0:
|
||||
lis r11,global_dbcr0@ha
|
||||
addi r11,r11,global_dbcr0@l
|
||||
#ifdef CONFIG_SMP
|
||||
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
lwz r9,TI_CPU(r9)
|
||||
slwi r9,r9,3
|
||||
add r11,r11,r9
|
||||
@@ -1197,7 +1197,7 @@ recheck:
|
||||
LOAD_MSR_KERNEL(r10,MSR_KERNEL)
|
||||
SYNC
|
||||
MTMSRD(r10) /* disable interrupts */
|
||||
rlwinm r9,r1,0,0,(31-THREAD_SHIFT)
|
||||
CURRENT_THREAD_INFO(r9, r1)
|
||||
lwz r9,TI_FLAGS(r9)
|
||||
andi. r0,r9,_TIF_NEED_RESCHED
|
||||
bne- do_resched
|
||||
|
Reference in New Issue
Block a user