mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
x86/fpu: Use fpstate in fpu_copy_kvm_uabi_to_fpstate()
Straight forward conversion. No functional change. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20211013145323.129699950@linutronix.de
This commit is contained in:
parent
0b2d39aa03
commit
ad6ede407a
|
|
@ -205,7 +205,7 @@ EXPORT_SYMBOL_GPL(fpu_copy_fpstate_to_kvm_uabi);
|
|||
int fpu_copy_kvm_uabi_to_fpstate(struct fpu *fpu, const void *buf, u64 xcr0,
|
||||
u32 *vpkru)
|
||||
{
|
||||
union fpregs_state *kstate = &fpu->fpstate->regs;
|
||||
struct fpstate *kstate = fpu->fpstate;
|
||||
const union fpregs_state *ustate = buf;
|
||||
struct pkru_state *xpkru;
|
||||
int ret;
|
||||
|
|
@ -215,25 +215,25 @@ int fpu_copy_kvm_uabi_to_fpstate(struct fpu *fpu, const void *buf, u64 xcr0,
|
|||
return -EINVAL;
|
||||
if (ustate->fxsave.mxcsr & ~mxcsr_feature_mask)
|
||||
return -EINVAL;
|
||||
memcpy(&kstate->fxsave, &ustate->fxsave, sizeof(ustate->fxsave));
|
||||
memcpy(&kstate->regs.fxsave, &ustate->fxsave, sizeof(ustate->fxsave));
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ustate->xsave.header.xfeatures & ~xcr0)
|
||||
return -EINVAL;
|
||||
|
||||
ret = copy_uabi_from_kernel_to_xstate(&kstate->xsave, ustate);
|
||||
ret = copy_uabi_from_kernel_to_xstate(&kstate->regs.xsave, ustate);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Retrieve PKRU if not in init state */
|
||||
if (kstate->xsave.header.xfeatures & XFEATURE_MASK_PKRU) {
|
||||
xpkru = get_xsave_addr(&kstate->xsave, XFEATURE_PKRU);
|
||||
if (kstate->regs.xsave.header.xfeatures & XFEATURE_MASK_PKRU) {
|
||||
xpkru = get_xsave_addr(&kstate->regs.xsave, XFEATURE_PKRU);
|
||||
*vpkru = xpkru->pkru;
|
||||
}
|
||||
|
||||
/* Ensure that XCOMP_BV is set up for XSAVES */
|
||||
xstate_init_xcomp_bv(&kstate->xsave, xfeatures_mask_uabi());
|
||||
xstate_init_xcomp_bv(&kstate->regs.xsave, xfeatures_mask_uabi());
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fpu_copy_kvm_uabi_to_fpstate);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user