aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/kvm_book3s_64.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/include/asm/kvm_book3s_64.h')
-rw-r--r--arch/powerpc/include/asm/kvm_book3s_64.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/kvm_book3s_64.h b/arch/powerpc/include/asm/kvm_book3s_64.h
index 2d81e202bdcc..2b84e485a181 100644
--- a/arch/powerpc/include/asm/kvm_book3s_64.h
+++ b/arch/powerpc/include/asm/kvm_book3s_64.h
@@ -85,6 +85,20 @@ static inline long try_lock_hpte(__be64 *hpte, unsigned long bits)
85 return old == 0; 85 return old == 0;
86} 86}
87 87
88static inline void unlock_hpte(__be64 *hpte, unsigned long hpte_v)
89{
90 hpte_v &= ~HPTE_V_HVLOCK;
91 asm volatile(PPC_RELEASE_BARRIER "" : : : "memory");
92 hpte[0] = cpu_to_be64(hpte_v);
93}
94
95/* Without barrier */
96static inline void __unlock_hpte(__be64 *hpte, unsigned long hpte_v)
97{
98 hpte_v &= ~HPTE_V_HVLOCK;
99 hpte[0] = cpu_to_be64(hpte_v);
100}
101
88static inline int __hpte_actual_psize(unsigned int lp, int psize) 102static inline int __hpte_actual_psize(unsigned int lp, int psize)
89{ 103{
90 int i, shift; 104 int i, shift;
@@ -422,6 +436,10 @@ static inline struct kvm_memslots *kvm_memslots_raw(struct kvm *kvm)
422 return rcu_dereference_raw_notrace(kvm->memslots); 436 return rcu_dereference_raw_notrace(kvm->memslots);
423} 437}
424 438
439extern void kvmppc_mmu_debugfs_init(struct kvm *kvm);
440
441extern void kvmhv_rm_send_ipi(int cpu);
442
425#endif /* CONFIG_KVM_BOOK3S_HV_POSSIBLE */ 443#endif /* CONFIG_KVM_BOOK3S_HV_POSSIBLE */
426 444
427#endif /* __ASM_KVM_BOOK3S_64_H__ */ 445#endif /* __ASM_KVM_BOOK3S_64_H__ */