diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2016-05-31 14:00:33 -0400 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2016-06-10 06:07:15 -0400 |
commit | 3e3c67f6a327852375247c98b0d153c44e460216 (patch) | |
tree | b5e538a9438015e5e3177a32fdccadfaba1e9e60 /arch/s390/kvm | |
parent | d03193de30e6d99770930c6fbf14f0d5dd5cb2f0 (diff) |
KVM: s390: gaccess: convert kvm_s390_check_low_addr_prot_real()
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 | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c index b6ccb26bc3c1..61dc45ef50b9 100644 --- a/arch/s390/kvm/gaccess.c +++ b/arch/s390/kvm/gaccess.c | |||
@@ -979,20 +979,9 @@ int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, ar_t ar, | |||
979 | */ | 979 | */ |
980 | int kvm_s390_check_low_addr_prot_real(struct kvm_vcpu *vcpu, unsigned long gra) | 980 | int kvm_s390_check_low_addr_prot_real(struct kvm_vcpu *vcpu, unsigned long gra) |
981 | { | 981 | { |
982 | struct kvm_s390_pgm_info *pgm = &vcpu->arch.pgm; | ||
983 | psw_t *psw = &vcpu->arch.sie_block->gpsw; | ||
984 | struct trans_exc_code_bits *tec_bits; | ||
985 | union ctlreg0 ctlreg0 = {.val = vcpu->arch.sie_block->gcr[0]}; | 982 | union ctlreg0 ctlreg0 = {.val = vcpu->arch.sie_block->gcr[0]}; |
986 | 983 | ||
987 | if (!ctlreg0.lap || !is_low_address(gra)) | 984 | if (!ctlreg0.lap || !is_low_address(gra)) |
988 | return 0; | 985 | return 0; |
989 | 986 | return trans_exc(vcpu, PGM_PROTECTION, gra, 0, GACC_STORE, PROT_TYPE_LA); | |
990 | memset(pgm, 0, sizeof(*pgm)); | ||
991 | tec_bits = (struct trans_exc_code_bits *)&pgm->trans_exc_code; | ||
992 | tec_bits->fsi = FSI_STORE; | ||
993 | tec_bits->as = psw_bits(*psw).as; | ||
994 | tec_bits->addr = gra >> PAGE_SHIFT; | ||
995 | pgm->code = PGM_PROTECTION; | ||
996 | |||
997 | return pgm->code; | ||
998 | } | 987 | } |