mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 22:22:08 +02:00
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: Claudio Imbrenda <imbrenda@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
ed3a0a011a
commit
9cbff7f221
|
|
@ -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 = ¤t->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 = ¤t->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;
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user