Lines Matching defs:gpa

653  * Pin the guest page given by gpa and set hpa to the pinned host address.
657 * - -EINVAL if the gpa is not valid guest storage
659 static int pin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t *hpa)
663 page = gfn_to_page(kvm, gpa_to_gfn(gpa));
666 *hpa = (hpa_t)page_to_phys(page) + (gpa & ~PAGE_MASK);
671 static void unpin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t hpa)
675 mark_page_dirty(kvm, gpa_to_gfn(gpa));
740 gpa_t gpa;
743 gpa = READ_ONCE(scb_o->scaol) & ~0xfUL;
745 gpa |= (u64) READ_ONCE(scb_o->scaoh) << 32;
746 if (gpa) {
747 if (gpa < 2 * PAGE_SIZE)
749 else if ((gpa & ~0x1fffUL) == kvm_s390_get_prefix(vcpu))
751 else if ((gpa & PAGE_MASK) !=
752 ((gpa + sizeof(struct bsca_block) - 1) & PAGE_MASK))
755 rc = pin_guest_page(vcpu->kvm, gpa, &hpa);
761 vsie_page->sca_gpa = gpa;
766 gpa = READ_ONCE(scb_o->itdba) & ~0xffUL;
767 if (gpa && (scb_s->ecb & ECB_TE)) {
768 if (gpa < 2 * PAGE_SIZE) {
773 rc = pin_guest_page(vcpu->kvm, gpa, &hpa);
778 vsie_page->itdba_gpa = gpa;
782 gpa = READ_ONCE(scb_o->gvrd) & ~0x1ffUL;
783 if (gpa && (scb_s->eca & ECA_VX) && !(scb_s->ecd & ECD_HOSTREGMGMT)) {
784 if (gpa < 2 * PAGE_SIZE) {
792 rc = pin_guest_page(vcpu->kvm, gpa, &hpa);
797 vsie_page->gvrd_gpa = gpa;
801 gpa = READ_ONCE(scb_o->riccbd) & ~0x3fUL;
802 if (gpa && (scb_s->ecb3 & ECB3_RI)) {
803 if (gpa < 2 * PAGE_SIZE) {
808 rc = pin_guest_page(vcpu->kvm, gpa, &hpa);
814 vsie_page->riccbd_gpa = gpa;
821 gpa = READ_ONCE(scb_o->sdnxo) & ~0xfUL;
823 if (!gpa || gpa < 2 * PAGE_SIZE) {
831 if (gpa & ((1 << sdnxc) - 1)) {
838 rc = pin_guest_page(vcpu->kvm, gpa, &hpa);
843 vsie_page->sdnx_gpa = gpa;
854 gpa_t gpa)
859 unpin_guest_page(vcpu->kvm, gpa, hpa);
864 * Pin the scb at gpa provided by guest 2 at vsie_page->scb_o.
870 gpa_t gpa)
875 rc = pin_guest_page(vcpu->kvm, gpa, &hpa);