aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kvm/hyp/tlb.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kvm/hyp/tlb.c')
-rw-r--r--arch/arm/kvm/hyp/tlb.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/arch/arm/kvm/hyp/tlb.c b/arch/arm/kvm/hyp/tlb.c
index a2636001e616..729652854f90 100644
--- a/arch/arm/kvm/hyp/tlb.c
+++ b/arch/arm/kvm/hyp/tlb.c
@@ -34,7 +34,7 @@
34 * As v7 does not support flushing per IPA, just nuke the whole TLB 34 * As v7 does not support flushing per IPA, just nuke the whole TLB
35 * instead, ignoring the ipa value. 35 * instead, ignoring the ipa value.
36 */ 36 */
37static void __hyp_text __tlb_flush_vmid(struct kvm *kvm) 37void __hyp_text __kvm_tlb_flush_vmid(struct kvm *kvm)
38{ 38{
39 dsb(ishst); 39 dsb(ishst);
40 40
@@ -50,21 +50,14 @@ static void __hyp_text __tlb_flush_vmid(struct kvm *kvm)
50 write_sysreg(0, VTTBR); 50 write_sysreg(0, VTTBR);
51} 51}
52 52
53__alias(__tlb_flush_vmid) void __kvm_tlb_flush_vmid(struct kvm *kvm); 53void __hyp_text __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
54
55static void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
56{ 54{
57 __tlb_flush_vmid(kvm); 55 __kvm_tlb_flush_vmid(kvm);
58} 56}
59 57
60__alias(__tlb_flush_vmid_ipa) void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, 58void __hyp_text __kvm_flush_vm_context(void)
61 phys_addr_t ipa);
62
63static void __hyp_text __tlb_flush_vm_context(void)
64{ 59{
65 write_sysreg(0, TLBIALLNSNHIS); 60 write_sysreg(0, TLBIALLNSNHIS);
66 write_sysreg(0, ICIALLUIS); 61 write_sysreg(0, ICIALLUIS);
67 dsb(ish); 62 dsb(ish);
68} 63}
69
70__alias(__tlb_flush_vm_context) void __kvm_flush_vm_context(void);