Lines Matching refs:lpcr

480 	pr_err("lpcr = %.16lx sdr1 = %.16lx last_inst = %.16lx\n",
481 vcpu->arch.vcore->lpcr, vcpu->kvm->arch.sdr1,
2104 unsigned long kvmppc_filter_lpcr_hv(struct kvm *kvm, unsigned long lpcr)
2108 lpcr &= ~LPCR_TC;
2112 lpcr &= ~LPCR_AIL;
2113 if ((lpcr & LPCR_AIL) != LPCR_AIL_3)
2114 lpcr &= ~LPCR_AIL; /* LPCR[AIL]=1/2 is disallowed */
2122 lpcr &= ~LPCR_AIL;
2129 lpcr &= ~LPCR_LD;
2131 return lpcr;
2134 static void verify_lpcr(struct kvm *kvm, unsigned long lpcr)
2136 if (lpcr != kvmppc_filter_lpcr_hv(kvm, lpcr)) {
2137 WARN_ONCE(1, "lpcr 0x%lx differs from filtered 0x%lx\n",
2138 lpcr, kvmppc_filter_lpcr_hv(kvm, lpcr));
2165 (vc->lpcr & ~mask) | (new_lpcr & mask));
2171 if ((new_lpcr & LPCR_ILE) != (vc->lpcr & LPCR_ILE)) {
2185 vc->lpcr = new_lpcr;
2345 *val = get_reg_val(id, vcpu->arch.vcore->lpcr);
2743 vcore->lpcr = kvm->arch.lpcr;
3220 if (kvm->arch.lpcr & LPCR_GTSE)
4047 static int kvmhv_vcpu_entry_p9_nested(struct kvm_vcpu *vcpu, u64 time_limit, unsigned long lpcr, u64 *tb)
4080 hvregs.lpcr = lpcr;
4126 if (!(lpcr & LPCR_LD)) /* Sign extend if not using large decrementer */
4144 unsigned long lpcr, u64 *tb)
4164 trap = kvmhv_vcpu_entry_p9_nested(vcpu, time_limit, lpcr, tb);
4176 trap = kvmhv_vcpu_entry_p9(vcpu, time_limit, lpcr, tb);
4183 trap = kvmhv_vcpu_entry_p9(vcpu, time_limit, lpcr, tb);
4595 unsigned long lpcr)
4678 lpcr |= LPCR_MER;
4705 trap = kvmhv_p9_guest_entry(vcpu, time_limit, lpcr, &tb);
4878 vcpu->arch.vcore->lpcr);
5126 * of kvm->arch.lpcr update).
5128 void kvmppc_update_lpcr(struct kvm *kvm, unsigned long lpcr, unsigned long mask)
5133 if ((kvm->arch.lpcr & mask) == lpcr)
5136 kvm->arch.lpcr = (kvm->arch.lpcr & ~mask) | lpcr;
5144 vc->lpcr = (vc->lpcr & ~mask) | lpcr;
5145 verify_lpcr(kvm, vc->lpcr);
5184 unsigned long lpcr = 0, senc;
5246 lpcr = senc << (LPCR_VRMASD_SH - 4);
5247 kvmppc_update_lpcr(kvm, lpcr, LPCR_VRMASD);
5250 /* Order updates to kvm->arch.lpcr etc. vs. mmu_ready */
5269 unsigned long lpcr, lpcr_mask;
5281 lpcr = LPCR_VPM1;
5285 kvmppc_update_lpcr(kvm, lpcr, lpcr_mask);
5296 unsigned long lpcr, lpcr_mask;
5309 lpcr = LPCR_UPRT | LPCR_GTSE | LPCR_HR;
5315 lpcr |= LPCR_HAIL;
5317 kvmppc_update_lpcr(kvm, lpcr, lpcr_mask);
5407 unsigned long lpcr, lpid;
5445 kvm->arch.host_lpcr = lpcr = mfspr(SPRN_LPCR);
5446 lpcr &= LPCR_PECE | LPCR_LPES;
5452 lpcr = 0;
5454 lpcr |= (4UL << LPCR_DPFD_SH) | LPCR_HDICE |
5460 lpcr |= LPCR_ONL;
5469 lpcr &= ~LPCR_VPM0;
5470 lpcr |= LPCR_HVICE | LPCR_HEIC;
5477 lpcr |= LPCR_LPES;
5486 lpcr &= ~LPCR_VPM1;
5487 lpcr |= LPCR_UPRT | LPCR_GTSE | LPCR_HR;
5491 lpcr |= LPCR_HAIL;
5500 verify_lpcr(kvm, lpcr);
5501 kvm->arch.lpcr = lpcr;
5930 unsigned long lpcr;
5982 lpcr = (cfg->flags & KVM_PPC_MMUV3_GTSE) ? LPCR_GTSE : 0;
5983 kvmppc_update_lpcr(kvm, lpcr, LPCR_GTSE);