Commit 1c61fada authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Borislav Petkov

x86/fpu: Rename copy_kernel_to_fpregs() to restore_fpregs_from_fpstate()

This is not a copy functionality. It restores the register state from the
supplied kernel buffer.

No functional changes.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210623121454.716058365@linutronix.de
parent 08ded2cd
...@@ -376,7 +376,7 @@ static inline int os_xrstor_safe(struct xregs_state *xstate, u64 mask) ...@@ -376,7 +376,7 @@ static inline int os_xrstor_safe(struct xregs_state *xstate, u64 mask)
return err; return err;
} }
static inline void __copy_kernel_to_fpregs(union fpregs_state *fpstate, u64 mask) static inline void __restore_fpregs_from_fpstate(union fpregs_state *fpstate, u64 mask)
{ {
if (use_xsave()) { if (use_xsave()) {
os_xrstor(&fpstate->xsave, mask); os_xrstor(&fpstate->xsave, mask);
...@@ -388,7 +388,7 @@ static inline void __copy_kernel_to_fpregs(union fpregs_state *fpstate, u64 mask ...@@ -388,7 +388,7 @@ static inline void __copy_kernel_to_fpregs(union fpregs_state *fpstate, u64 mask
} }
} }
static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate) static inline void restore_fpregs_from_fpstate(union fpregs_state *fpstate)
{ {
/* /*
* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception is * AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception is
...@@ -403,7 +403,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate) ...@@ -403,7 +403,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate)
: : [addr] "m" (fpstate)); : : [addr] "m" (fpstate));
} }
__copy_kernel_to_fpregs(fpstate, -1); __restore_fpregs_from_fpstate(fpstate, -1);
} }
extern int copy_fpstate_to_sigframe(void __user *buf, void __user *fp, int size); extern int copy_fpstate_to_sigframe(void __user *buf, void __user *fp, int size);
...@@ -474,7 +474,7 @@ static inline void __fpregs_load_activate(void) ...@@ -474,7 +474,7 @@ static inline void __fpregs_load_activate(void)
return; return;
if (!fpregs_state_valid(fpu, cpu)) { if (!fpregs_state_valid(fpu, cpu)) {
copy_kernel_to_fpregs(&fpu->state); restore_fpregs_from_fpstate(&fpu->state);
fpregs_activate(fpu); fpregs_activate(fpu);
fpu->last_cpu = cpu; fpu->last_cpu = cpu;
} }
......
...@@ -9653,7 +9653,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu) ...@@ -9653,7 +9653,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
*/ */
if (vcpu->arch.guest_fpu) if (vcpu->arch.guest_fpu)
/* PKRU is separately restored in kvm_x86_ops.run. */ /* PKRU is separately restored in kvm_x86_ops.run. */
__copy_kernel_to_fpregs(&vcpu->arch.guest_fpu->state, __restore_fpregs_from_fpstate(&vcpu->arch.guest_fpu->state,
~XFEATURE_MASK_PKRU); ~XFEATURE_MASK_PKRU);
fpregs_mark_activate(); fpregs_mark_activate();
...@@ -9674,7 +9674,7 @@ static void kvm_put_guest_fpu(struct kvm_vcpu *vcpu) ...@@ -9674,7 +9674,7 @@ static void kvm_put_guest_fpu(struct kvm_vcpu *vcpu)
if (vcpu->arch.guest_fpu) if (vcpu->arch.guest_fpu)
kvm_save_current_fpu(vcpu->arch.guest_fpu); kvm_save_current_fpu(vcpu->arch.guest_fpu);
copy_kernel_to_fpregs(&vcpu->arch.user_fpu->state); restore_fpregs_from_fpstate(&vcpu->arch.user_fpu->state);
fpregs_mark_activate(); fpregs_mark_activate();
fpregs_unlock(); fpregs_unlock();
......
...@@ -65,7 +65,7 @@ __visible bool ex_handler_fprestore(const struct exception_table_entry *fixup, ...@@ -65,7 +65,7 @@ __visible bool ex_handler_fprestore(const struct exception_table_entry *fixup,
WARN_ONCE(1, "Bad FPU state detected at %pB, reinitializing FPU registers.", WARN_ONCE(1, "Bad FPU state detected at %pB, reinitializing FPU registers.",
(void *)instruction_pointer(regs)); (void *)instruction_pointer(regs));
__copy_kernel_to_fpregs(&init_fpstate, -1); __restore_fpregs_from_fpstate(&init_fpstate, -1);
return true; return true;
} }
EXPORT_SYMBOL_GPL(ex_handler_fprestore); EXPORT_SYMBOL_GPL(ex_handler_fprestore);
......
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