Commit 8442d653 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

KVM: arm64: pkvm: Document the side effects of kvm_flush_dcache_to_poc()



We rely on the presence of a DSB at the end of kvm_flush_dcache_to_poc()
that, on top of ensuring completion of the cache clean, also covers
the speculative page table walk started from EL1.

Document this dependency.

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Reviewed-by: default avatarOliver Upton <oliver.upton@linux.dev>
parent 7e1b2329
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -297,6 +297,13 @@ int __pkvm_prot_finalize(void)
	params->vttbr = kvm_get_vttbr(mmu);
	params->vtcr = host_mmu.arch.vtcr;
	params->hcr_el2 |= HCR_VM;

	/*
	 * The CMO below not only cleans the updated params to the
	 * PoC, but also provides the DSB that ensures ongoing
	 * page-table walks that have started before we trapped to EL2
	 * have completed.
	 */
	kvm_flush_dcache_to_poc(params, sizeof(*params));

	write_sysreg(params->hcr_el2, hcr_el2);