diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2016-05-31 14:21:03 -0400 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2016-06-10 06:07:16 -0400 |
commit | bcfa01d787278476f3e79530d03df9b3f52e6e59 (patch) | |
tree | 160c8ee85af1126bbd1ba2863076a34d9deb06cd /arch/s390/kvm | |
parent | cde0dcfb5df1dbcd90a8e73130a6b7091bdb493a (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.c | 23 |
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; |