diff options
Diffstat (limited to 'arch/powerpc/include/asm/kvm_book3s_64.h')
-rw-r--r-- | arch/powerpc/include/asm/kvm_book3s_64.h | 18 |
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 | ||
88 | static 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 */ | ||
96 | static 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 | |||
88 | static inline int __hpte_actual_psize(unsigned int lp, int psize) | 102 | static 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 | ||
439 | extern void kvmppc_mmu_debugfs_init(struct kvm *kvm); | ||
440 | |||
441 | extern 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__ */ |