mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
cde0dcfb5d
commit
bcfa01d787
|
@ -543,13 +543,6 @@ static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce,
|
|||
{
|
||||
int rc;
|
||||
struct psw_bits psw = psw_bits(vcpu->arch.sie_block->gpsw);
|
||||
struct kvm_s390_pgm_info *pgm = &vcpu->arch.pgm;
|
||||
struct trans_exc_code_bits *tec_bits;
|
||||
|
||||
memset(pgm, 0, sizeof(*pgm));
|
||||
tec_bits = (struct trans_exc_code_bits *)&pgm->trans_exc_code;
|
||||
tec_bits->fsi = mode == GACC_STORE ? FSI_STORE : FSI_FETCH;
|
||||
tec_bits->as = psw.as;
|
||||
|
||||
if (!psw.t) {
|
||||
asce->val = 0;
|
||||
|
@ -572,22 +565,8 @@ static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce,
|
|||
return 0;
|
||||
case PSW_AS_ACCREG:
|
||||
rc = ar_translation(vcpu, asce, ar, mode);
|
||||
switch (rc) {
|
||||
case PGM_ALEN_TRANSLATION:
|
||||
case PGM_ALE_SEQUENCE:
|
||||
case PGM_ASTE_VALIDITY:
|
||||
case PGM_ASTE_SEQUENCE:
|
||||
case PGM_EXTENDED_AUTHORITY:
|
||||
vcpu->arch.pgm.exc_access_id = ar;
|
||||
break;
|
||||
case PGM_PROTECTION:
|
||||
tec_bits->addr = ga >> PAGE_SHIFT;
|
||||
tec_bits->b60 = 1;
|
||||
tec_bits->b61 = 1;
|
||||
break;
|
||||
}
|
||||
if (rc > 0)
|
||||
pgm->code = rc;
|
||||
return trans_exc(vcpu, rc, ga, ar, mode, PROT_TYPE_ALC);
|
||||
return rc;
|
||||
}
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue