Lines Matching refs:ga
573 unsigned long ga, u8 ar, enum gacc_mode mode) in get_vcpu_asce() argument
600 return trans_exc(vcpu, rc, ga, ar, mode, PROT_TYPE_ALC); in get_vcpu_asce()
796 static inline int is_low_address(unsigned long ga) in is_low_address() argument
799 return (ga & ~0x11fful) == 0; in is_low_address()
861 static bool fetch_prot_override_applies(unsigned long ga, unsigned int len) in fetch_prot_override_applies() argument
863 return ga < 2048 && ga + len <= 2048; in fetch_prot_override_applies()
880 unsigned long ga, unsigned int len) in vcpu_check_access_key() argument
908 fetch_prot_override_applies(ga, len)) in vcpu_check_access_key()
952 static int guest_range_to_gpas(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, in guest_range_to_gpas() argument
958 unsigned int offset = offset_in_page(ga); in guest_range_to_gpas()
967 ga = kvm_s390_logical_to_effective(vcpu, ga); in guest_range_to_gpas()
968 if (mode == GACC_STORE && lap_enabled && is_low_address(ga)) in guest_range_to_gpas()
969 return trans_exc(vcpu, PGM_PROTECTION, ga, ar, mode, in guest_range_to_gpas()
972 rc = guest_translate(vcpu, ga, &gpa, asce, mode, &prot); in guest_range_to_gpas()
976 gpa = kvm_s390_real_to_abs(vcpu, ga); in guest_range_to_gpas()
983 return trans_exc(vcpu, rc, ga, ar, mode, prot); in guest_range_to_gpas()
984 rc = vcpu_check_access_key(vcpu, access_key, mode, asce, gpa, ga, in guest_range_to_gpas()
987 return trans_exc(vcpu, rc, ga, ar, mode, PROT_TYPE_KEYC); in guest_range_to_gpas()
991 ga += fragment_len; in guest_range_to_gpas()
1065 int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, in access_guest_with_key() argument
1083 ga = kvm_s390_logical_to_effective(vcpu, ga); in access_guest_with_key()
1084 rc = get_vcpu_asce(vcpu, &asce, ga, ar, mode); in access_guest_with_key()
1087 nr_pages = (((ga & ~PAGE_MASK) + len - 1) >> PAGE_SHIFT) + 1; in access_guest_with_key()
1108 rc = guest_range_to_gpas(vcpu, ga, ar, gpas, len, asce, mode, 0); in access_guest_with_key()
1113 if (try_fetch_prot_override && fetch_prot_override_applies(ga, fragment_len)) { in access_guest_with_key()
1127 ga = kvm_s390_logical_to_effective(vcpu, ga + fragment_len); in access_guest_with_key()
1136 rc = trans_exc_ending(vcpu, rc, ga, ar, mode, prot, terminate); in access_guest_with_key()