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

Commit 5230429a authored by Al Viro's avatar Al Viro
Browse files

sparc64: take fprs_write() and friends to start_thread()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 1918c7f5
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ struct thread_struct {
#ifndef __ASSEMBLY__

#include <linux/types.h>
#include <asm/fpumacro.h>

/* Return saved PC of a blocked thread. */
struct task_struct;
@@ -143,6 +144,10 @@ do { \
	: \
	: "r" (regs), "r" (sp - sizeof(struct reg_window) - STACK_BIAS), \
	  "i" ((const unsigned long)(&((struct pt_regs *)0)->u_regs[0]))); \
	fprs_write(0);	\
	current_thread_info()->xfsr[0] = 0;	\
	current_thread_info()->fpsaved[0] = 0;	\
	regs->tstate &= ~TSTATE_PEF;	\
} while (0)

#define start_thread32(regs, pc, sp) \
@@ -183,6 +188,10 @@ do { \
	: \
	: "r" (regs), "r" (sp - sizeof(struct reg_window32)), \
	  "i" ((const unsigned long)(&((struct pt_regs *)0)->u_regs[0]))); \
	fprs_write(0);	\
	current_thread_info()->xfsr[0] = 0;	\
	current_thread_info()->fpsaved[0] = 0;	\
	regs->tstate &= ~TSTATE_PEF;	\
} while (0)

/* Free all resources held by a thread. */
+0 −6
Original line number Diff line number Diff line
@@ -692,12 +692,6 @@ asmlinkage int sparc_execve(struct pt_regs *regs)
			  (const char __user *const __user *)
			  regs->u_regs[base + UREG_I2], regs);
	putname(filename);
	if (!error) {
		fprs_write(0);
		current_thread_info()->xfsr[0] = 0;
		current_thread_info()->fpsaved[0] = 0;
		regs->tstate &= ~TSTATE_PEF;
	}
out:
	return error;
}
+0 −7
Original line number Diff line number Diff line
@@ -421,13 +421,6 @@ asmlinkage long sparc32_execve(struct pt_regs *regs)
				 compat_ptr(regs->u_regs[base + UREG_I2]), regs);

	putname(filename);

	if (!error) {
		fprs_write(0);
		current_thread_info()->xfsr[0] = 0;
		current_thread_info()->fpsaved[0] = 0;
		regs->tstate &= ~TSTATE_PEF;
	}
out:
	return error;
}