diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2013-06-21 08:08:47 -0400 |
---|---|---|
committer | Christoffer Dall <christoffer.dall@linaro.org> | 2013-06-26 13:50:04 -0400 |
commit | 479c5ae2f8a55509b691494cd13691d3dc31d102 (patch) | |
tree | 6892951511aa62357eec0266f1dc6ca1d4bc9652 /arch/arm/kvm | |
parent | 6a077e4ab9cbfbf279fb955bae05b03781c97013 (diff) |
ARM: KVM: add missing dsb before invalidating Stage-2 TLBs
When performing a Stage-2 TLB invalidation, it is necessary to
make sure the write to the page tables is observable by all CPUs.
For this purpose, add a dsb instruction to __kvm_tlb_flush_vmid_ipa
before doing the TLB invalidation itself.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'arch/arm/kvm')
-rw-r--r-- | arch/arm/kvm/interrupts.S | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/kvm/interrupts.S b/arch/arm/kvm/interrupts.S index d0a8fa33409a..20e03d969558 100644 --- a/arch/arm/kvm/interrupts.S +++ b/arch/arm/kvm/interrupts.S | |||
@@ -49,6 +49,7 @@ __kvm_hyp_code_start: | |||
49 | ENTRY(__kvm_tlb_flush_vmid_ipa) | 49 | ENTRY(__kvm_tlb_flush_vmid_ipa) |
50 | push {r2, r3} | 50 | push {r2, r3} |
51 | 51 | ||
52 | dsb ishst | ||
52 | add r0, r0, #KVM_VTTBR | 53 | add r0, r0, #KVM_VTTBR |
53 | ldrd r2, r3, [r0] | 54 | ldrd r2, r3, [r0] |
54 | mcrr p15, 6, r2, r3, c2 @ Write VTTBR | 55 | mcrr p15, 6, r2, r3, c2 @ Write VTTBR |