KVM: s390: gaccess: convert kvm_s390_check_low_addr_prot_real()
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Tue, 31 May 2016 18:00:33 +0000 (20:00 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 10 Jun 2016 10:07:15 +0000 (12:07 +0200)
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>
arch/s390/kvm/gaccess.c

index b6ccb26bc3c1c8008c8cbbfa7221b94b0f6add2e..61dc45ef50b9d0297830f83fcd214cb5e0ee8a90 100644 (file)
@@ -979,20 +979,9 @@ int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, ar_t ar,
  */
 int kvm_s390_check_low_addr_prot_real(struct kvm_vcpu *vcpu, unsigned long gra)
 {
-       struct kvm_s390_pgm_info *pgm = &vcpu->arch.pgm;
-       psw_t *psw = &vcpu->arch.sie_block->gpsw;
-       struct trans_exc_code_bits *tec_bits;
        union ctlreg0 ctlreg0 = {.val = vcpu->arch.sie_block->gcr[0]};
 
        if (!ctlreg0.lap || !is_low_address(gra))
                return 0;
-
-       memset(pgm, 0, sizeof(*pgm));
-       tec_bits = (struct trans_exc_code_bits *)&pgm->trans_exc_code;
-       tec_bits->fsi = FSI_STORE;
-       tec_bits->as = psw_bits(*psw).as;
-       tec_bits->addr = gra >> PAGE_SHIFT;
-       pgm->code = PGM_PROTECTION;
-
-       return pgm->code;
+       return trans_exc(vcpu, PGM_PROTECTION, gra, 0, GACC_STORE, PROT_TYPE_LA);
 }