diff options
Diffstat (limited to 'arch/powerpc/kernel/process.c')
| -rw-r--r-- | arch/powerpc/kernel/process.c | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index bfdd783e3916..72be0c32e902 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -1403,7 +1403,7 @@ void show_regs(struct pt_regs * regs)  	printk("NIP:  "REG" LR: "REG" CTR: "REG"\n",  	       regs->nip, regs->link, regs->ctr); -	printk("REGS: %p TRAP: %04lx   %s  (%s)\n", +	printk("REGS: %px TRAP: %04lx   %s  (%s)\n",  	       regs, regs->trap, print_tainted(), init_utsname()->release);  	printk("MSR:  "REG" ", regs->msr);  	print_msr_bits(regs->msr); @@ -1569,16 +1569,22 @@ void arch_release_task_struct(struct task_struct *t)   */  int set_thread_tidr(struct task_struct *t)  { +	int rc; +  	if (!cpu_has_feature(CPU_FTR_ARCH_300))  		return -EINVAL;  	if (t != current)  		return -EINVAL; -	t->thread.tidr = assign_thread_tidr(); -	if (t->thread.tidr < 0) -		return t->thread.tidr; +	if (t->thread.tidr) +		return 0; + +	rc = assign_thread_tidr(); +	if (rc < 0) +		return rc; +	t->thread.tidr = rc;  	mtspr(SPRN_TIDR, t->thread.tidr);  	return 0; |