aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm/kvm-s390.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kvm/kvm-s390.c')
-rw-r--r--arch/s390/kvm/kvm-s390.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 5b01f0953900..4377d1886631 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -770,6 +770,14 @@ int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
770 } else 770 } else
771 prefix = 0; 771 prefix = 0;
772 772
773 /*
774 * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
775 * copying in vcpu load/put. Lets update our copies before we save
776 * it into the save area
777 */
778 save_fp_regs(&vcpu->arch.guest_fpregs);
779 save_access_regs(vcpu->run->s.regs.acrs);
780
773 if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs), 781 if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs),
774 vcpu->arch.guest_fpregs.fprs, 128, prefix)) 782 vcpu->arch.guest_fpregs.fprs, 128, prefix))
775 return -EFAULT; 783 return -EFAULT;