···438438 break;439439440440 case PTRACE_GET_THREAD_AREA:441441- ret = put_user(child->thread_info->tp_value,441441+ ret = put_user(task_thread_info(child)->tp_value,442442 (unsigned long __user *) data);443443 break;444444
+2-2
arch/mips/kernel/ptrace32.c
···375375 break;376376377377 case PTRACE_GET_THREAD_AREA:378378- ret = put_user(child->thread_info->tp_value,378378+ ret = put_user(task_thread_info(child)->tp_value,379379 (unsigned int __user *) (unsigned long) data);380380 break;381381···389389 break;390390391391 case PTRACE_GET_THREAD_AREA_3264:392392- ret = put_user(child->thread_info->tp_value,392392+ ret = put_user(task_thread_info(child)->tp_value,393393 (unsigned long __user *) (unsigned long) data);394394 break;395395
+3-4
arch/mips/kernel/smp_mt.c
···287287 */288288void prom_boot_secondary(int cpu, struct task_struct *idle)289289{290290+ struct thread_info *gp = task_thread_info(idle);290291 dvpe();291292 set_c0_mvpcontrol(MVPCONTROL_VPC);292293···308307 write_tc_gpr_sp( __KSTK_TOS(idle));309308310309 /* global pointer */311311- write_tc_gpr_gp((unsigned long)idle->thread_info);310310+ write_tc_gpr_gp((unsigned long)gp);312311313313- flush_icache_range((unsigned long)idle->thread_info,314314- (unsigned long)idle->thread_info +315315- sizeof(struct thread_info));312312+ flush_icache_range((unsigned long)gp, (unsigned long)(gp + 1));316313317314 /* finally out of configuration and into chaos */318315 clear_c0_mvpcontrol(MVPCONTROL_VPC);