aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm
diff options
context:
space:
mode:
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>2016-05-31 14:21:03 -0400
committerChristian Borntraeger <borntraeger@de.ibm.com>2016-06-10 06:07:16 -0400
commitbcfa01d787278476f3e79530d03df9b3f52e6e59 (patch)
tree160c8ee85af1126bbd1ba2863076a34d9deb06cd /arch/s390/kvm
parentcde0dcfb5df1dbcd90a8e73130a6b7091bdb493a (diff)
KVM: s390: gaccess: convert get_vcpu_asce()
Let's use our new function for preparing translation exceptions. Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm')
-rw-r--r--arch/s390/kvm/gaccess.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c
index ec6c91e85dbe..8e245e764c21 100644
--- a/arch/s390/kvm/gaccess.c
+++ b/arch/s390/kvm/gaccess.c
@@ -543,13 +543,6 @@ static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce,
543{ 543{
544 int rc; 544 int rc;
545 struct psw_bits psw = psw_bits(vcpu->arch.sie_block->gpsw); 545 struct psw_bits psw = psw_bits(vcpu->arch.sie_block->gpsw);
546 struct kvm_s390_pgm_info *pgm = &vcpu->arch.pgm;
547 struct trans_exc_code_bits *tec_bits;
548
549 memset(pgm, 0, sizeof(*pgm));
550 tec_bits = (struct trans_exc_code_bits *)&pgm->trans_exc_code;
551 tec_bits->fsi = mode == GACC_STORE ? FSI_STORE : FSI_FETCH;
552 tec_bits->as = psw.as;
553 546
554 if (!psw.t) { 547 if (!psw.t) {
555 asce->val = 0; 548 asce->val = 0;
@@ -572,22 +565,8 @@ static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce,
572 return 0; 565 return 0;
573 case PSW_AS_ACCREG: 566 case PSW_AS_ACCREG:
574 rc = ar_translation(vcpu, asce, ar, mode); 567 rc = ar_translation(vcpu, asce, ar, mode);
575 switch (rc) {
576 case PGM_ALEN_TRANSLATION:
577 case PGM_ALE_SEQUENCE:
578 case PGM_ASTE_VALIDITY:
579 case PGM_ASTE_SEQUENCE:
580 case PGM_EXTENDED_AUTHORITY:
581 vcpu->arch.pgm.exc_access_id = ar;
582 break;
583 case PGM_PROTECTION:
584 tec_bits->addr = ga >> PAGE_SHIFT;
585 tec_bits->b60 = 1;
586 tec_bits->b61 = 1;
587 break;
588 }
589 if (rc > 0) 568 if (rc > 0)
590 pgm->code = rc; 569 return trans_exc(vcpu, rc, ga, ar, mode, PROT_TYPE_ALC);
591 return rc; 570 return rc;
592 } 571 }
593 return 0; 572 return 0;