Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3ab547f authored by Will Deacon's avatar Will Deacon
Browse files

ARM: kvm: use inner-shareable barriers after TLB flushing



When flushing the TLB at PL2 in response to remapping at stage-2 or VMID
rollover, we have a dsb instruction to ensure completion of the command
before continuing.

Since we only care about other processors for TLB invalidation, use the
inner-shareable variant of the dsb instruction instead.

Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 73a6fdc4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ target: @ We're now in the trampoline code, switch page tables

	@ Invalidate the old TLBs
	mcr	p15, 4, r0, c8, c7, 0	@ TLBIALLH
	dsb
	dsb	ish

	eret

+2 −2
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ ENTRY(__kvm_tlb_flush_vmid_ipa)
	mcrr	p15, 6, r2, r3, c2	@ Write VTTBR
	isb
	mcr     p15, 0, r0, c8, c3, 0	@ TLBIALLIS (rt ignored)
	dsb
	dsb	ish
	isb
	mov	r2, #0
	mov	r3, #0
@@ -79,7 +79,7 @@ ENTRY(__kvm_flush_vm_context)
	mcr     p15, 4, r0, c8, c3, 4
	/* Invalidate instruction caches Inner Shareable (ICIALLUIS) */
	mcr     p15, 0, r0, c7, c1, 0
	dsb
	dsb	ish
	isb				@ Not necessary if followed by eret

	bx	lr