Lines Matching refs:lpid
66 hr->lpid = swab32(hr->lpid); in byteswap_hv_regs()
278 l2 = kvmhv_get_nested(vcpu->kvm, l2_hv.lpid, true); in kvmhv_enter_nested_guest()
417 static void kvmhv_flush_lpid(unsigned int lpid) in kvmhv_flush_lpid() argument
422 radix__flush_all_lpid(lpid); in kvmhv_flush_lpid()
427 lpid, TLBIEL_INVAL_SET_LPID); in kvmhv_flush_lpid()
432 void kvmhv_set_ptbl_entry(unsigned int lpid, u64 dw0, u64 dw1) in kvmhv_set_ptbl_entry() argument
435 mmu_partition_table_set_entry(lpid, dw0, dw1, true); in kvmhv_set_ptbl_entry()
439 pseries_partition_tb[lpid].patb0 = cpu_to_be64(dw0); in kvmhv_set_ptbl_entry()
440 pseries_partition_tb[lpid].patb1 = cpu_to_be64(dw1); in kvmhv_set_ptbl_entry()
442 kvmhv_flush_lpid(lpid); in kvmhv_set_ptbl_entry()
593 static struct kvm_nested_guest *kvmhv_alloc_nested(struct kvm *kvm, unsigned int lpid) in kvmhv_alloc_nested() argument
602 gp->l1_lpid = lpid; in kvmhv_alloc_nested()
649 int lpid = gp->l1_lpid; in kvmhv_remove_nested() local
653 if (gp == kvm->arch.nested_guests[lpid]) { in kvmhv_remove_nested()
654 kvm->arch.nested_guests[lpid] = NULL; in kvmhv_remove_nested()
655 if (lpid == kvm->arch.max_nested_lpid) { in kvmhv_remove_nested()
656 while (--lpid >= 0 && !kvm->arch.nested_guests[lpid]) in kvmhv_remove_nested()
658 kvm->arch.max_nested_lpid = lpid; in kvmhv_remove_nested()
774 static struct kvm_nested_guest *kvmhv_find_nested(struct kvm *kvm, int lpid) in kvmhv_find_nested() argument
776 if (lpid > kvm->arch.max_nested_lpid) in kvmhv_find_nested()
778 return kvm->arch.nested_guests[lpid]; in kvmhv_find_nested()
781 pte_t *find_kvm_nested_guest_pte(struct kvm *kvm, unsigned long lpid, in find_kvm_nested_guest_pte() argument
787 gp = kvmhv_find_nested(kvm, lpid); in find_kvm_nested_guest_pte()
841 unsigned int shift, lpid; in kvmhv_update_nest_rmap_rc() local
845 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; in kvmhv_update_nest_rmap_rc()
848 ptep = find_kvm_nested_guest_pte(kvm, lpid, gpa, &shift); in kvmhv_update_nest_rmap_rc()
857 kvmppc_radix_tlbie_page(kvm, gpa, shift, lpid); in kvmhv_update_nest_rmap_rc()
888 unsigned int shift, lpid; in kvmhv_remove_nest_rmap() local
892 lpid = (n_rmap & RMAP_NESTED_LPID_MASK) >> RMAP_NESTED_LPID_SHIFT; in kvmhv_remove_nest_rmap()
893 gp = kvmhv_find_nested(kvm, lpid); in kvmhv_remove_nest_rmap()
898 ptep = find_kvm_nested_guest_pte(kvm, lpid, gpa, &shift); in kvmhv_remove_nest_rmap()
1014 static int kvmhv_emulate_tlbie_tlb_addr(struct kvm_vcpu *vcpu, int lpid, in kvmhv_emulate_tlbie_tlb_addr() argument
1032 gp = kvmhv_get_nested(kvm, lpid, false); in kvmhv_emulate_tlbie_tlb_addr()
1105 int lpid; in kvmhv_emulate_priv_tlbie() local
1112 lpid = get_lpid(rsval); in kvmhv_emulate_priv_tlbie()
1135 ret = kvmhv_emulate_tlbie_tlb_addr(vcpu, lpid, ap, epn); in kvmhv_emulate_priv_tlbie()
1139 gp = kvmhv_get_nested(kvm, lpid, false); in kvmhv_emulate_priv_tlbie()
1257 gpte.raddr, kvm->arch.lpid); in kvmhv_handle_nested_set_rc()
1481 int kvmhv_nested_next_lpid(struct kvm *kvm, int lpid) in kvmhv_nested_next_lpid() argument
1486 while (++lpid <= kvm->arch.max_nested_lpid) { in kvmhv_nested_next_lpid()
1487 if (kvm->arch.nested_guests[lpid]) { in kvmhv_nested_next_lpid()
1488 ret = lpid; in kvmhv_nested_next_lpid()