diff options
Diffstat (limited to 'arch/s390/kvm/kvm-s390.c')
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 23 |
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; |