mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-01 14:23:39 +07:00
[PATCH] mips: task_thread_info()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
40bc9c671a
commit
dc8f6029cd
@ -438,7 +438,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PTRACE_GET_THREAD_AREA:
|
case PTRACE_GET_THREAD_AREA:
|
||||||
ret = put_user(child->thread_info->tp_value,
|
ret = put_user(task_thread_info(child)->tp_value,
|
||||||
(unsigned long __user *) data);
|
(unsigned long __user *) data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PTRACE_GET_THREAD_AREA:
|
case PTRACE_GET_THREAD_AREA:
|
||||||
ret = put_user(child->thread_info->tp_value,
|
ret = put_user(task_thread_info(child)->tp_value,
|
||||||
(unsigned int __user *) (unsigned long) data);
|
(unsigned int __user *) (unsigned long) data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PTRACE_GET_THREAD_AREA_3264:
|
case PTRACE_GET_THREAD_AREA_3264:
|
||||||
ret = put_user(child->thread_info->tp_value,
|
ret = put_user(task_thread_info(child)->tp_value,
|
||||||
(unsigned long __user *) (unsigned long) data);
|
(unsigned long __user *) (unsigned long) data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -287,6 +287,7 @@ void prom_prepare_cpus(unsigned int max_cpus)
|
|||||||
*/
|
*/
|
||||||
void prom_boot_secondary(int cpu, struct task_struct *idle)
|
void prom_boot_secondary(int cpu, struct task_struct *idle)
|
||||||
{
|
{
|
||||||
|
struct thread_info *gp = task_thread_info(idle);
|
||||||
dvpe();
|
dvpe();
|
||||||
set_c0_mvpcontrol(MVPCONTROL_VPC);
|
set_c0_mvpcontrol(MVPCONTROL_VPC);
|
||||||
|
|
||||||
@ -307,11 +308,9 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
|
|||||||
write_tc_gpr_sp( __KSTK_TOS(idle));
|
write_tc_gpr_sp( __KSTK_TOS(idle));
|
||||||
|
|
||||||
/* global pointer */
|
/* global pointer */
|
||||||
write_tc_gpr_gp((unsigned long)idle->thread_info);
|
write_tc_gpr_gp((unsigned long)gp);
|
||||||
|
|
||||||
flush_icache_range((unsigned long)idle->thread_info,
|
flush_icache_range((unsigned long)gp, (unsigned long)(gp + 1));
|
||||||
(unsigned long)idle->thread_info +
|
|
||||||
sizeof(struct thread_info));
|
|
||||||
|
|
||||||
/* finally out of configuration and into chaos */
|
/* finally out of configuration and into chaos */
|
||||||
clear_c0_mvpcontrol(MVPCONTROL_VPC);
|
clear_c0_mvpcontrol(MVPCONTROL_VPC);
|
||||||
|
@ -263,7 +263,7 @@ asmlinkage int sys_olduname(struct oldold_utsname * name)
|
|||||||
|
|
||||||
void sys_set_thread_area(unsigned long addr)
|
void sys_set_thread_area(unsigned long addr)
|
||||||
{
|
{
|
||||||
struct thread_info *ti = current->thread_info;
|
struct thread_info *ti = task_thread_info(current);
|
||||||
|
|
||||||
ti->tp_value = addr;
|
ti->tp_value = addr;
|
||||||
|
|
||||||
|
@ -519,7 +519,7 @@ static inline int simulate_llsc(struct pt_regs *regs)
|
|||||||
*/
|
*/
|
||||||
static inline int simulate_rdhwr(struct pt_regs *regs)
|
static inline int simulate_rdhwr(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct thread_info *ti = current->thread_info;
|
struct thread_info *ti = task_thread_info(current);
|
||||||
unsigned int opcode;
|
unsigned int opcode;
|
||||||
|
|
||||||
if (unlikely(get_insn_opcode(regs, &opcode)))
|
if (unlikely(get_insn_opcode(regs, &opcode)))
|
||||||
|
@ -93,8 +93,8 @@ void __init prom_prepare_cpus(unsigned int max_cpus)
|
|||||||
*/
|
*/
|
||||||
void prom_boot_secondary(int cpu, struct task_struct *idle)
|
void prom_boot_secondary(int cpu, struct task_struct *idle)
|
||||||
{
|
{
|
||||||
unsigned long gp = (unsigned long) idle->thread_info;
|
unsigned long gp = (unsigned long) task_thread_info(idle);
|
||||||
unsigned long sp = gp + THREAD_SIZE - 32;
|
unsigned long sp = __KSTK_TOP(idle);
|
||||||
|
|
||||||
secondary_sp = sp;
|
secondary_sp = sp;
|
||||||
secondary_gp = gp;
|
secondary_gp = gp;
|
||||||
|
@ -168,8 +168,8 @@ void __init prom_prepare_cpus(unsigned int max_cpus)
|
|||||||
*/
|
*/
|
||||||
void __init prom_boot_secondary(int cpu, struct task_struct *idle)
|
void __init prom_boot_secondary(int cpu, struct task_struct *idle)
|
||||||
{
|
{
|
||||||
unsigned long gp = (unsigned long) idle->thread_info;
|
unsigned long gp = (unsigned long)task_thread_info(idle);
|
||||||
unsigned long sp = gp + THREAD_SIZE - 32;
|
unsigned long sp = __KSTK_TOS(idle);
|
||||||
|
|
||||||
LAUNCH_SLAVE(cputonasid(cpu),cputoslice(cpu),
|
LAUNCH_SLAVE(cputonasid(cpu),cputoslice(cpu),
|
||||||
(launch_proc_t)MAPPED_KERN_RW_TO_K0(smp_bootstrap),
|
(launch_proc_t)MAPPED_KERN_RW_TO_K0(smp_bootstrap),
|
||||||
|
@ -60,7 +60,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
|
|||||||
|
|
||||||
retval = cfe_cpu_start(cpu_logical_map(cpu), &smp_bootstrap,
|
retval = cfe_cpu_start(cpu_logical_map(cpu), &smp_bootstrap,
|
||||||
__KSTK_TOS(idle),
|
__KSTK_TOS(idle),
|
||||||
(unsigned long)idle->thread_info, 0);
|
(unsigned long)task_thread_info(idle), 0);
|
||||||
if (retval != 0)
|
if (retval != 0)
|
||||||
printk("cfe_start_cpu(%i) returned %i\n" , cpu, retval);
|
printk("cfe_start_cpu(%i) returned %i\n" , cpu, retval);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user