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.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index f8bcaefd7d3..3fa0a10e466 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -23,6 +23,7 @@
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/slab.h> 24#include <linux/slab.h>
25#include <linux/timer.h> 25#include <linux/timer.h>
26#include <asm/asm-offsets.h>
26#include <asm/lowcore.h> 27#include <asm/lowcore.h>
27#include <asm/pgtable.h> 28#include <asm/pgtable.h>
28#include <asm/nmi.h> 29#include <asm/nmi.h>
@@ -543,7 +544,7 @@ rerun_vcpu:
543 rc = -EINTR; 544 rc = -EINTR;
544 } 545 }
545 546
546 if (rc == -ENOTSUPP) { 547 if (rc == -EOPNOTSUPP) {
547 /* intercept cannot be handled in-kernel, prepare kvm-run */ 548 /* intercept cannot be handled in-kernel, prepare kvm-run */
548 kvm_run->exit_reason = KVM_EXIT_S390_SIEIC; 549 kvm_run->exit_reason = KVM_EXIT_S390_SIEIC;
549 kvm_run->s390_sieic.icptcode = vcpu->arch.sie_block->icptcode; 550 kvm_run->s390_sieic.icptcode = vcpu->arch.sie_block->icptcode;
@@ -603,45 +604,45 @@ int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
603 } else 604 } else
604 prefix = 0; 605 prefix = 0;
605 606
606 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, fp_regs), 607 if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs),
607 vcpu->arch.guest_fpregs.fprs, 128, prefix)) 608 vcpu->arch.guest_fpregs.fprs, 128, prefix))
608 return -EFAULT; 609 return -EFAULT;
609 610
610 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, gp_regs), 611 if (__guestcopy(vcpu, addr + offsetof(struct save_area, gp_regs),
611 vcpu->arch.guest_gprs, 128, prefix)) 612 vcpu->arch.guest_gprs, 128, prefix))
612 return -EFAULT; 613 return -EFAULT;
613 614
614 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, psw), 615 if (__guestcopy(vcpu, addr + offsetof(struct save_area, psw),
615 &vcpu->arch.sie_block->gpsw, 16, prefix)) 616 &vcpu->arch.sie_block->gpsw, 16, prefix))
616 return -EFAULT; 617 return -EFAULT;
617 618
618 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, pref_reg), 619 if (__guestcopy(vcpu, addr + offsetof(struct save_area, pref_reg),
619 &vcpu->arch.sie_block->prefix, 4, prefix)) 620 &vcpu->arch.sie_block->prefix, 4, prefix))
620 return -EFAULT; 621 return -EFAULT;
621 622
622 if (__guestcopy(vcpu, 623 if (__guestcopy(vcpu,
623 addr + offsetof(struct save_area_s390x, fp_ctrl_reg), 624 addr + offsetof(struct save_area, fp_ctrl_reg),
624 &vcpu->arch.guest_fpregs.fpc, 4, prefix)) 625 &vcpu->arch.guest_fpregs.fpc, 4, prefix))
625 return -EFAULT; 626 return -EFAULT;
626 627
627 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, tod_reg), 628 if (__guestcopy(vcpu, addr + offsetof(struct save_area, tod_reg),
628 &vcpu->arch.sie_block->todpr, 4, prefix)) 629 &vcpu->arch.sie_block->todpr, 4, prefix))
629 return -EFAULT; 630 return -EFAULT;
630 631
631 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, timer), 632 if (__guestcopy(vcpu, addr + offsetof(struct save_area, timer),
632 &vcpu->arch.sie_block->cputm, 8, prefix)) 633 &vcpu->arch.sie_block->cputm, 8, prefix))
633 return -EFAULT; 634 return -EFAULT;
634 635
635 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, clk_cmp), 636 if (__guestcopy(vcpu, addr + offsetof(struct save_area, clk_cmp),
636 &vcpu->arch.sie_block->ckc, 8, prefix)) 637 &vcpu->arch.sie_block->ckc, 8, prefix))
637 return -EFAULT; 638 return -EFAULT;
638 639
639 if (__guestcopy(vcpu, addr + offsetof(struct save_area_s390x, acc_regs), 640 if (__guestcopy(vcpu, addr + offsetof(struct save_area, acc_regs),
640 &vcpu->arch.guest_acrs, 64, prefix)) 641 &vcpu->arch.guest_acrs, 64, prefix))
641 return -EFAULT; 642 return -EFAULT;
642 643
643 if (__guestcopy(vcpu, 644 if (__guestcopy(vcpu,
644 addr + offsetof(struct save_area_s390x, ctrl_regs), 645 addr + offsetof(struct save_area, ctrl_regs),
645 &vcpu->arch.sie_block->gcr, 128, prefix)) 646 &vcpu->arch.sie_block->gcr, 128, prefix))
646 return -EFAULT; 647 return -EFAULT;
647 return 0; 648 return 0;