diff options
Diffstat (limited to 'arch/powerpc/kernel/process.c')
| -rw-r--r-- | arch/powerpc/kernel/process.c | 27 | 
1 files changed, 14 insertions, 13 deletions
| diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index d817ab018486..e40707032ac3 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -647,6 +647,9 @@ void show_regs(struct pt_regs * regs)  	printk("MSR: "REG" ", regs->msr);  	printbits(regs->msr, msr_bits);  	printk("  CR: %08lx  XER: %08lx\n", regs->ccr, regs->xer); +#ifdef CONFIG_PPC64 +	printk("SOFTE: %ld\n", regs->softe); +#endif  	trap = TRAP(regs);  	if ((regs->trap != 0xc00) && cpu_has_feature(CPU_FTR_CFAR))  		printk("CFAR: "REG"\n", regs->orig_gpr3); @@ -1220,34 +1223,32 @@ void dump_stack(void)  EXPORT_SYMBOL(dump_stack);  #ifdef CONFIG_PPC64 -void ppc64_runlatch_on(void) +/* Called with hard IRQs off */ +void __ppc64_runlatch_on(void)  { +	struct thread_info *ti = current_thread_info();  	unsigned long ctrl; -	if (cpu_has_feature(CPU_FTR_CTRL) && !test_thread_flag(TIF_RUNLATCH)) { -		HMT_medium(); - -		ctrl = mfspr(SPRN_CTRLF); -		ctrl |= CTRL_RUNLATCH; -		mtspr(SPRN_CTRLT, ctrl); +	ctrl = mfspr(SPRN_CTRLF); +	ctrl |= CTRL_RUNLATCH; +	mtspr(SPRN_CTRLT, ctrl); -		set_thread_flag(TIF_RUNLATCH); -	} +	ti->local_flags |= TLF_RUNLATCH;  } +/* Called with hard IRQs off */  void __ppc64_runlatch_off(void)  { +	struct thread_info *ti = current_thread_info();  	unsigned long ctrl; -	HMT_medium(); - -	clear_thread_flag(TIF_RUNLATCH); +	ti->local_flags &= ~TLF_RUNLATCH;  	ctrl = mfspr(SPRN_CTRLF);  	ctrl &= ~CTRL_RUNLATCH;  	mtspr(SPRN_CTRLT, ctrl);  } -#endif +#endif /* CONFIG_PPC64 */  #if THREAD_SHIFT < PAGE_SHIFT | 
