Lines Matching defs:vpa
446 static void init_vpa(struct kvm_vcpu *vcpu, struct lppaca *vpa)
448 vpa->__old_status |= LPPACA_OLD_SHARED_PROC;
449 vpa->yield_count = cpu_to_be32(1);
486 unsigned long vcpuid, unsigned long vpa)
504 if ((vpa & (L1_CACHE_BYTES - 1)) || !vpa)
508 va = kvmppc_pin_guest_page(kvm, vpa, &nb);
515 kvmppc_unpin_guest_page(kvm, va, vpa, false);
521 vpa = 0;
540 vpap = &tvcpu->arch.vpa;
551 if (!vpa_is_registered(&tvcpu->arch.vpa))
561 if (!vpa_is_registered(&tvcpu->arch.vpa))
575 vpap = &tvcpu->arch.vpa;
591 vpap->next_gpa = vpa;
653 if (!(vcpu->arch.vpa.update_pending ||
659 if (vcpu->arch.vpa.update_pending) {
660 kvmppc_update_vpa(vcpu, &vcpu->arch.vpa);
661 if (vcpu->arch.vpa.pinned_addr)
662 init_vpa(vcpu, vcpu->arch.vpa.pinned_addr);
696 struct lppaca *vpa;
703 vpa = vcpu->arch.vpa.pinned_addr;
712 if (!dt || !vpa)
725 /* order writing *dt vs. writing vpa->dtl_idx */
727 vpa->dtl_idx = cpu_to_be64(++vcpu->arch.dtl_index);
901 lppaca = (struct lppaca *)vcpu->arch.vpa.pinned_addr;
1785 *val = get_reg_val(id, vcpu->arch.vpa.next_gpa);
2024 r = set_vpa(vcpu, &vcpu->arch.vpa, addr, sizeof(struct lppaca));
2030 if (addr && !vcpu->arch.vpa.next_gpa)
2039 !vcpu->arch.vpa.next_gpa))
2475 static void unpin_vpa(struct kvm *kvm, struct kvmppc_vpa *vpa)
2477 if (vpa->pinned_addr)
2478 kvmppc_unpin_guest_page(kvm, vpa->pinned_addr, vpa->gpa,
2479 vpa->dirty);
2487 unpin_vpa(vcpu->kvm, &vcpu->arch.vpa);
2900 else if (vcpu->arch.vpa.update_pending ||
3626 if (vcpu->arch.vpa.pinned_addr) {
3627 struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
3630 vcpu->arch.vpa.dirty = 1;
3640 if (vcpu->arch.vpa.pinned_addr) {
3641 struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
3775 if (vcpu->arch.vpa.pinned_addr) {
3776 struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
3779 vcpu->arch.vpa.dirty = 1;
4559 kvmppc_harvest_vpa_dirty(&vcpu->arch.vpa, memslot, buf);
5544 static void unpin_vpa_reset(struct kvm *kvm, struct kvmppc_vpa *vpa)
5546 unpin_vpa(kvm, vpa);
5547 vpa->gpa = 0;
5548 vpa->pinned_addr = NULL;
5549 vpa->dirty = false;
5550 vpa->update_pending = 0;
5635 unpin_vpa_reset(kvm, &vcpu->arch.vpa);