Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcfa01d7 authored by David Hildenbrand's avatar David Hildenbrand Committed by Christian Borntraeger
Browse files

KVM: s390: gaccess: convert get_vcpu_asce()



Let's use our new function for preparing translation exceptions.

Signed-off-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent cde0dcfb
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -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;