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

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -376,7 +376,7 @@ static inline int os_xrstor_safe(struct xregs_state *xstate, u64 mask)
	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()) {
		os_xrstor(&fpstate->xsave, 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
@@ -403,7 +403,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *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);
@@ -474,7 +474,7 @@ static inline void __fpregs_load_activate(void)
		return;

	if (!fpregs_state_valid(fpu, cpu)) {
		copy_kernel_to_fpregs(&fpu->state);
		restore_fpregs_from_fpstate(&fpu->state);
		fpregs_activate(fpu);
		fpu->last_cpu = cpu;
	}
+2 −2
Original line number Diff line number Diff line
@@ -9653,7 +9653,7 @@ static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
	 */
	if (vcpu->arch.guest_fpu)
		/* 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);

	fpregs_mark_activate();
@@ -9674,7 +9674,7 @@ static void kvm_put_guest_fpu(struct kvm_vcpu *vcpu)
	if (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_unlock();
+1 −1
Original line number Diff line number Diff line
@@ -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.",
		  (void *)instruction_pointer(regs));

	__copy_kernel_to_fpregs(&init_fpstate, -1);
	__restore_fpregs_from_fpstate(&init_fpstate, -1);
	return true;
}
EXPORT_SYMBOL_GPL(ex_handler_fprestore);