Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3169641 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds
Browse files

[PATCH] sparc64: task_thread_info()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 65e0fdff
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -390,7 +390,7 @@ void show_regs32(struct pt_regs32 *regs)


unsigned long thread_saved_pc(struct task_struct *tsk)
unsigned long thread_saved_pc(struct task_struct *tsk)
{
{
	struct thread_info *ti = tsk->thread_info;
	struct thread_info *ti = task_thread_info(tsk);
	unsigned long ret = 0xdeadbeefUL;
	unsigned long ret = 0xdeadbeefUL;
	
	
	if (ti && ti->ksp) {
	if (ti && ti->ksp) {
@@ -847,7 +847,7 @@ unsigned long get_wchan(struct task_struct *task)


	thread_info_base = (unsigned long) task->thread_info;
	thread_info_base = (unsigned long) task->thread_info;
	bias = STACK_BIAS;
	bias = STACK_BIAS;
	fp = task->thread_info->ksp + bias;
	fp = task_thread_info(task)->ksp + bias;


	do {
	do {
		/* Bogus frame pointer? */
		/* Bogus frame pointer? */
+17 −17
Original line number Original line Diff line number Diff line
@@ -324,7 +324,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
		unsigned long tpc = cregs->tpc;
		unsigned long tpc = cregs->tpc;
		int rval;
		int rval;


		if ((child->thread_info->flags & _TIF_32BIT) != 0)
		if ((task_thread_info(child)->flags & _TIF_32BIT) != 0)
			tpc &= 0xffffffff;
			tpc &= 0xffffffff;
		if (__put_user(cregs->tstate, (&pregs->tstate)) ||
		if (__put_user(cregs->tstate, (&pregs->tstate)) ||
		    __put_user(tpc, (&pregs->tpc)) ||
		    __put_user(tpc, (&pregs->tpc)) ||
@@ -395,7 +395,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
			pt_error_return(regs, EFAULT);
			pt_error_return(regs, EFAULT);
			goto out_tsk;
			goto out_tsk;
		}
		}
		if ((child->thread_info->flags & _TIF_32BIT) != 0) {
		if ((task_thread_info(child)->flags & _TIF_32BIT) != 0) {
			tpc &= 0xffffffff;
			tpc &= 0xffffffff;
			tnpc &= 0xffffffff;
			tnpc &= 0xffffffff;
		}
		}
@@ -430,11 +430,11 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
			} fpq[16];
			} fpq[16];
		};
		};
		struct fps __user *fps = (struct fps __user *) addr;
		struct fps __user *fps = (struct fps __user *) addr;
		unsigned long *fpregs = child->thread_info->fpregs;
		unsigned long *fpregs = task_thread_info(child)->fpregs;


		if (copy_to_user(&fps->regs[0], fpregs,
		if (copy_to_user(&fps->regs[0], fpregs,
				 (32 * sizeof(unsigned int))) ||
				 (32 * sizeof(unsigned int))) ||
		    __put_user(child->thread_info->xfsr[0], (&fps->fsr)) ||
		    __put_user(task_thread_info(child)->xfsr[0], (&fps->fsr)) ||
		    __put_user(0, (&fps->fpqd)) ||
		    __put_user(0, (&fps->fpqd)) ||
		    __put_user(0, (&fps->flags)) ||
		    __put_user(0, (&fps->flags)) ||
		    __put_user(0, (&fps->extra)) ||
		    __put_user(0, (&fps->extra)) ||
@@ -452,11 +452,11 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
			unsigned long fsr;
			unsigned long fsr;
		};
		};
		struct fps __user *fps = (struct fps __user *) addr;
		struct fps __user *fps = (struct fps __user *) addr;
		unsigned long *fpregs = child->thread_info->fpregs;
		unsigned long *fpregs = task_thread_info(child)->fpregs;


		if (copy_to_user(&fps->regs[0], fpregs,
		if (copy_to_user(&fps->regs[0], fpregs,
				 (64 * sizeof(unsigned int))) ||
				 (64 * sizeof(unsigned int))) ||
		    __put_user(child->thread_info->xfsr[0], (&fps->fsr))) {
		    __put_user(task_thread_info(child)->xfsr[0], (&fps->fsr))) {
			pt_error_return(regs, EFAULT);
			pt_error_return(regs, EFAULT);
			goto out_tsk;
			goto out_tsk;
		}
		}
@@ -477,7 +477,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
			} fpq[16];
			} fpq[16];
		};
		};
		struct fps __user *fps = (struct fps __user *) addr;
		struct fps __user *fps = (struct fps __user *) addr;
		unsigned long *fpregs = child->thread_info->fpregs;
		unsigned long *fpregs = task_thread_info(child)->fpregs;
		unsigned fsr;
		unsigned fsr;


		if (copy_from_user(fpregs, &fps->regs[0],
		if (copy_from_user(fpregs, &fps->regs[0],
@@ -486,11 +486,11 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
			pt_error_return(regs, EFAULT);
			pt_error_return(regs, EFAULT);
			goto out_tsk;
			goto out_tsk;
		}
		}
		child->thread_info->xfsr[0] &= 0xffffffff00000000UL;
		task_thread_info(child)->xfsr[0] &= 0xffffffff00000000UL;
		child->thread_info->xfsr[0] |= fsr;
		task_thread_info(child)->xfsr[0] |= fsr;
		if (!(child->thread_info->fpsaved[0] & FPRS_FEF))
		if (!(task_thread_info(child)->fpsaved[0] & FPRS_FEF))
			child->thread_info->gsr[0] = 0;
			task_thread_info(child)->gsr[0] = 0;
		child->thread_info->fpsaved[0] |= (FPRS_FEF | FPRS_DL);
		task_thread_info(child)->fpsaved[0] |= (FPRS_FEF | FPRS_DL);
		pt_succ_return(regs, 0);
		pt_succ_return(regs, 0);
		goto out_tsk;
		goto out_tsk;
	}
	}
@@ -501,17 +501,17 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
			unsigned long fsr;
			unsigned long fsr;
		};
		};
		struct fps __user *fps = (struct fps __user *) addr;
		struct fps __user *fps = (struct fps __user *) addr;
		unsigned long *fpregs = child->thread_info->fpregs;
		unsigned long *fpregs = task_thread_info(child)->fpregs;


		if (copy_from_user(fpregs, &fps->regs[0],
		if (copy_from_user(fpregs, &fps->regs[0],
				   (64 * sizeof(unsigned int))) ||
				   (64 * sizeof(unsigned int))) ||
		    __get_user(child->thread_info->xfsr[0], (&fps->fsr))) {
		    __get_user(task_thread_info(child)->xfsr[0], (&fps->fsr))) {
			pt_error_return(regs, EFAULT);
			pt_error_return(regs, EFAULT);
			goto out_tsk;
			goto out_tsk;
		}
		}
		if (!(child->thread_info->fpsaved[0] & FPRS_FEF))
		if (!(task_thread_info(child)->fpsaved[0] & FPRS_FEF))
			child->thread_info->gsr[0] = 0;
			task_thread_info(child)->gsr[0] = 0;
		child->thread_info->fpsaved[0] |= (FPRS_FEF | FPRS_DL | FPRS_DU);
		task_thread_info(child)->fpsaved[0] |= (FPRS_FEF | FPRS_DL | FPRS_DU);
		pt_succ_return(regs, 0);
		pt_succ_return(regs, 0);
		goto out_tsk;
		goto out_tsk;
	}
	}
+1 −1
Original line number Original line Diff line number Diff line
@@ -520,7 +520,7 @@ void __init setup_arch(char **cmdline_p)
	rd_doload = ((ram_flags & RAMDISK_LOAD_FLAG) != 0);	
	rd_doload = ((ram_flags & RAMDISK_LOAD_FLAG) != 0);	
#endif
#endif


	init_task.thread_info->kregs = &fake_swapper_regs;
	task_thread_info(&init_task)->kregs = &fake_swapper_regs;


#ifdef CONFIG_IP_PNP
#ifdef CONFIG_IP_PNP
	if (!ic_set_manually) {
	if (!ic_set_manually) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -335,7 +335,7 @@ static int __devinit smp_boot_one_cpu(unsigned int cpu)


	p = fork_idle(cpu);
	p = fork_idle(cpu);
	callin_flag = 0;
	callin_flag = 0;
	cpu_new_thread = p->thread_info;
	cpu_new_thread = task_thread_info(p);
	cpu_set(cpu, cpu_callout_map);
	cpu_set(cpu, cpu_callout_map);


	cpu_find_by_mid(cpu, &cpu_node);
	cpu_find_by_mid(cpu, &cpu_node);
+1 −1
Original line number Original line Diff line number Diff line
@@ -60,7 +60,7 @@ do { \
	register unsigned long pgd_cache asm("o4"); \
	register unsigned long pgd_cache asm("o4"); \
	paddr = __pa((__mm)->pgd); \
	paddr = __pa((__mm)->pgd); \
	pgd_cache = 0UL; \
	pgd_cache = 0UL; \
	if ((__tsk)->thread_info->flags & _TIF_32BIT) \
	if (task_thread_info(__tsk)->flags & _TIF_32BIT) \
		pgd_cache = get_pgd_cache((__mm)->pgd); \
		pgd_cache = get_pgd_cache((__mm)->pgd); \
	__asm__ __volatile__("wrpr	%%g0, 0x494, %%pstate\n\t" \
	__asm__ __volatile__("wrpr	%%g0, 0x494, %%pstate\n\t" \
			     "mov	%3, %%g4\n\t" \
			     "mov	%3, %%g4\n\t" \
Loading