No functional change.
Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
---
v2:
* No change
---
xen/arch/x86/i387.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/xen/arch/x86/i387.c b/xen/arch/x86/i387.c
index 3add0025e495..a6ae323fa95f 100644
--- a/xen/arch/x86/i387.c
+++ b/xen/arch/x86/i387.c
@@ -304,8 +304,10 @@ int vcpu_init_fpu(struct vcpu *v)
void vcpu_reset_fpu(struct vcpu *v)
{
+ struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
+
v->fpu_initialised = false;
- *v->arch.xsave_area = (struct xsave_struct) {
+ *xsave_area = (struct xsave_struct) {
.fpu_sse = {
.mxcsr = MXCSR_DEFAULT,
.fcw = FCW_RESET,
@@ -313,15 +315,21 @@ void vcpu_reset_fpu(struct vcpu *v)
},
.xsave_hdr.xstate_bv = X86_XCR0_X87,
};
+
+ VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
}
void vcpu_setup_fpu(struct vcpu *v, const void *data)
{
+ struct xsave_struct *xsave_area = VCPU_MAP_XSAVE_AREA(v);
+
v->fpu_initialised = true;
- *v->arch.xsave_area = (struct xsave_struct) {
+ *xsave_area = (struct xsave_struct) {
.fpu_sse = *(const fpusse_t*)data,
.xsave_hdr.xstate_bv = XSTATE_FP_SSE,
};
+
+ VCPU_UNMAP_XSAVE_AREA(v, xsave_area);
}
/* Free FPU's context save area */
--
2.47.0