• Home
  • Raw
  • Download

Lines Matching refs:arch

93 	ulong smsr = vcpu->arch.shared->msr;  in kvmppc_recalc_shadow_msr()
100 smsr |= (vcpu->arch.shared->msr & vcpu->arch.guest_owned_ext); in kvmppc_recalc_shadow_msr()
105 vcpu->arch.shadow_msr = smsr; in kvmppc_recalc_shadow_msr()
110 ulong old_msr = vcpu->arch.shared->msr; in kvmppc_set_msr()
117 vcpu->arch.shared->msr = msr; in kvmppc_set_msr()
121 if (!vcpu->arch.pending_exceptions) { in kvmppc_set_msr()
127 vcpu->arch.shared->msr = msr; in kvmppc_set_msr()
131 if ((vcpu->arch.shared->msr & (MSR_PR|MSR_IR|MSR_DR)) != in kvmppc_set_msr()
137 if (!(msr & MSR_PR) && vcpu->arch.magic_page_pa) { in kvmppc_set_msr()
138 struct kvm_vcpu_arch *a = &vcpu->arch; in kvmppc_set_msr()
148 if (vcpu->arch.shared->msr & MSR_FP) in kvmppc_set_msr()
156 vcpu->arch.hflags &= ~BOOK3S_HFLAG_SLB; in kvmppc_set_pvr()
157 vcpu->arch.pvr = pvr; in kvmppc_set_pvr()
164 vcpu->arch.cpu_type = KVM_CPU_3S_64; in kvmppc_set_pvr()
172 vcpu->arch.cpu_type = KVM_CPU_3S_32; in kvmppc_set_pvr()
179 vcpu->arch.hflags &= ~BOOK3S_HFLAG_DCBZ32; in kvmppc_set_pvr()
180 if (vcpu->arch.mmu.is_dcbz32(vcpu) && (mfmsr() & MSR_HV) && in kvmppc_set_pvr()
182 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32; in kvmppc_set_pvr()
191 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32; in kvmppc_set_pvr()
206 vcpu->arch.hflags |= BOOK3S_HFLAG_NATIVE_PS; in kvmppc_set_pvr()
252 ulong mp_pa = vcpu->arch.magic_page_pa; in kvmppc_visible_gfn()
271 bool dr = (vcpu->arch.shared->msr & MSR_DR) ? true : false; in kvmppc_handle_pagefault()
272 bool ir = (vcpu->arch.shared->msr & MSR_IR) ? true : false; in kvmppc_handle_pagefault()
279 page_found = vcpu->arch.mmu.xlate(vcpu, eaddr, &pte, data); in kvmppc_handle_pagefault()
289 switch (vcpu->arch.shared->msr & (MSR_DR|MSR_IR)) { in kvmppc_handle_pagefault()
295 vcpu->arch.mmu.esid_to_vsid(vcpu, eaddr >> SID_SHIFT, &vsid); in kvmppc_handle_pagefault()
297 if ((vcpu->arch.shared->msr & (MSR_DR|MSR_IR)) == MSR_DR) in kvmppc_handle_pagefault()
308 if (vcpu->arch.mmu.is_dcbz32(vcpu) && in kvmppc_handle_pagefault()
309 (!(vcpu->arch.hflags & BOOK3S_HFLAG_DCBZ32))) { in kvmppc_handle_pagefault()
321 vcpu->arch.shared->dar = kvmppc_get_fault_dar(vcpu); in kvmppc_handle_pagefault()
322 vcpu->arch.shared->dsisr = svcpu->fault_dsisr; in kvmppc_handle_pagefault()
323 vcpu->arch.shared->msr |= in kvmppc_handle_pagefault()
330 vcpu->arch.shared->dar = kvmppc_get_fault_dar(vcpu); in kvmppc_handle_pagefault()
331 vcpu->arch.shared->dsisr = svcpu->fault_dsisr & ~DSISR_NOHPTE; in kvmppc_handle_pagefault()
332 vcpu->arch.shared->dsisr |= DSISR_PROTFAULT; in kvmppc_handle_pagefault()
333 vcpu->arch.shared->msr |= in kvmppc_handle_pagefault()
339 vcpu->arch.shared->dar = kvmppc_get_fault_dar(vcpu); in kvmppc_handle_pagefault()
347 else if (vcpu->arch.mmu.is_dcbz32(vcpu) && in kvmppc_handle_pagefault()
348 (!(vcpu->arch.hflags & BOOK3S_HFLAG_DCBZ32))) in kvmppc_handle_pagefault()
353 vcpu->arch.paddr_accessed = pte.raddr; in kvmppc_handle_pagefault()
374 u64 *vcpu_fpr = vcpu->arch.fpr; in kvmppc_giveup_ext()
376 u64 *vcpu_vsx = vcpu->arch.vsr; in kvmppc_giveup_ext()
381 if (!(vcpu->arch.guest_owned_ext & msr)) in kvmppc_giveup_ext()
391 for (i = 0; i < ARRAY_SIZE(vcpu->arch.fpr); i++) in kvmppc_giveup_ext()
394 vcpu->arch.fpscr = t->fpscr.val; in kvmppc_giveup_ext()
399 memcpy(vcpu->arch.vr, t->vr, sizeof(vcpu->arch.vr)); in kvmppc_giveup_ext()
400 vcpu->arch.vscr = t->vscr; in kvmppc_giveup_ext()
406 for (i = 0; i < ARRAY_SIZE(vcpu->arch.vsr); i++) in kvmppc_giveup_ext()
414 vcpu->arch.guest_owned_ext &= ~msr; in kvmppc_giveup_ext()
427 ulong msr = vcpu->arch.shared->msr; in kvmppc_read_inst()
431 vcpu->arch.shared->msr = kvmppc_set_field(msr, 42, 47, 0); in kvmppc_read_inst()
443 if (!(vcpu->arch.hflags & BOOK3S_HFLAG_PAIRED_SINGLE)) in kvmppc_check_ext()
459 u64 *vcpu_fpr = vcpu->arch.fpr; in kvmppc_handle_ext()
461 u64 *vcpu_vsx = vcpu->arch.vsr; in kvmppc_handle_ext()
467 if (vcpu->arch.hflags & BOOK3S_HFLAG_PAIRED_SINGLE) in kvmppc_handle_ext()
470 if (!(vcpu->arch.shared->msr & msr)) { in kvmppc_handle_ext()
476 if (vcpu->arch.guest_owned_ext & msr) { in kvmppc_handle_ext()
488 for (i = 0; i < ARRAY_SIZE(vcpu->arch.fpr); i++) in kvmppc_handle_ext()
491 t->fpscr.val = vcpu->arch.fpscr; in kvmppc_handle_ext()
497 memcpy(t->vr, vcpu->arch.vr, sizeof(vcpu->arch.vr)); in kvmppc_handle_ext()
498 t->vscr = vcpu->arch.vscr; in kvmppc_handle_ext()
505 for (i = 0; i < ARRAY_SIZE(vcpu->arch.vsr); i++) in kvmppc_handle_ext()
514 vcpu->arch.guest_owned_ext |= msr; in kvmppc_handle_ext()
557 } else if (vcpu->arch.mmu.is_dcbz32(vcpu) && in kvmppc_handle_exit()
558 (!(vcpu->arch.hflags & BOOK3S_HFLAG_DCBZ32))) { in kvmppc_handle_exit()
567 vcpu->arch.shared->msr |= shadow_srr1 & 0x58000000; in kvmppc_handle_exit()
596 vcpu->arch.shared->dar = dar; in kvmppc_handle_exit()
597 vcpu->arch.shared->dsisr = fault_dsisr; in kvmppc_handle_exit()
605 vcpu->arch.shared->dar = kvmppc_get_fault_dar(vcpu); in kvmppc_handle_exit()
641 if (vcpu->arch.shared->msr & MSR_PR) { in kvmppc_handle_exit()
678 if (vcpu->arch.papr_enabled && in kvmppc_handle_exit()
680 !(vcpu->arch.shared->msr & MSR_PR)) { in kvmppc_handle_exit()
698 vcpu->arch.hcall_needed = 1; in kvmppc_handle_exit()
700 } else if (vcpu->arch.osi_enabled && in kvmppc_handle_exit()
710 vcpu->arch.osi_needed = 1; in kvmppc_handle_exit()
712 } else if (!(vcpu->arch.shared->msr & MSR_PR) && in kvmppc_handle_exit()
753 vcpu->arch.shared->dsisr = kvmppc_alignment_dsisr(vcpu, in kvmppc_handle_exit()
755 vcpu->arch.shared->dar = kvmppc_alignment_dar(vcpu, in kvmppc_handle_exit()
820 sregs->pvr = vcpu->arch.pvr; in kvm_arch_vcpu_ioctl_get_sregs()
823 if (vcpu->arch.hflags & BOOK3S_HFLAG_SLB) { in kvm_arch_vcpu_ioctl_get_sregs()
825 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige | i; in kvm_arch_vcpu_ioctl_get_sregs()
826 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs()
830 sregs->u.s.ppc32.sr[i] = vcpu->arch.shared->sr[i]; in kvm_arch_vcpu_ioctl_get_sregs()
850 if (vcpu->arch.hflags & BOOK3S_HFLAG_SLB) { in kvm_arch_vcpu_ioctl_set_sregs()
852 vcpu->arch.mmu.slbmte(vcpu, sregs->u.s.ppc64.slb[i].slbv, in kvm_arch_vcpu_ioctl_set_sregs()
857 vcpu->arch.mmu.mtsrin(vcpu, i, sregs->u.s.ppc32.sr[i]); in kvm_arch_vcpu_ioctl_set_sregs()
939 vcpu->arch.shared = (void*)(p + PAGE_SIZE - 4096); in kvmppc_core_vcpu_create()
945 vcpu->arch.pvr = 0x3C0301; in kvmppc_core_vcpu_create()
948 vcpu->arch.pvr = 0x84202; in kvmppc_core_vcpu_create()
950 kvmppc_set_pvr(vcpu, vcpu->arch.pvr); in kvmppc_core_vcpu_create()
951 vcpu->arch.slb_nr = 64; in kvmppc_core_vcpu_create()
953 vcpu->arch.shadow_msr = MSR_USER64; in kvmppc_core_vcpu_create()
975 free_page((unsigned long)vcpu->arch.shared & PAGE_MASK); in kvmppc_core_vcpu_free()
1001 if (!vcpu->arch.sane) { in kvmppc_vcpu_run()
1055 if (vcpu->arch.shared->msr & MSR_FP) in kvmppc_vcpu_run()