Commit 9cbff7f2 authored by Heiko Carstens's avatar Heiko Carstens

s390/fpu: remove regs member from struct fpu

KVM was the only user which modified the regs pointer in struct fpu. Remove
the pointer and convert the rest of the core fpu code to directly access
the save area embedded within struct fpu.
Reviewed-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent ed3a0a01
......@@ -13,7 +13,6 @@
struct fpu {
__u32 fpc; /* Floating-point control */
void *regs; /* Pointer to the current save area */
union {
/* Floating-point register save area */
freg_t fprs[__NUM_FPRS];
......
......@@ -202,7 +202,6 @@ typedef struct thread_struct thread_struct;
#define INIT_THREAD { \
.ksp = sizeof(init_stack) + (unsigned long) &init_stack, \
.ufpu.regs = (void *)init_task.thread.ufpu.fprs, \
.last_break = 1, \
}
......
......@@ -110,13 +110,12 @@ EXPORT_SYMBOL(__kernel_fpu_end);
void __load_user_fpu_regs(void)
{
struct fpu *state = &current->thread.ufpu;
void *regs = current->thread.ufpu.regs;
fpu_lfpc_safe(&state->fpc);
if (likely(cpu_has_vx()))
load_vx_regs(regs);
load_vx_regs(state->vxrs);
else
load_fp_regs(regs);
load_fp_regs(state->fprs);
clear_thread_flag(TIF_FPU);
}
......@@ -132,7 +131,6 @@ void save_user_fpu_regs(void)
{
unsigned long flags;
struct fpu *state;
void *regs;
local_irq_save(flags);
......@@ -140,13 +138,12 @@ void save_user_fpu_regs(void)
goto out;
state = &current->thread.ufpu;
regs = current->thread.ufpu.regs;
fpu_stfpc(&state->fpc);
if (likely(cpu_has_vx()))
save_vx_regs(regs);
save_vx_regs(state->vxrs);
else
save_fp_regs(regs);
save_fp_regs(state->fprs);
set_thread_flag(TIF_FPU);
out:
local_irq_restore(flags);
......
......@@ -94,7 +94,6 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
save_user_fpu_regs();
*dst = *src;
dst->thread.ufpu.regs = dst->thread.ufpu.fprs;
dst->thread.kfpu_flags = 0;
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment