BACKPORT: arm/arm64: KVM: Invalidate data cache on unmap

Let's assume a guest has created an uncached mapping, and written
to that page. Let's also assume that the host uses a cache-coherent
IO subsystem. Let's finally assume that the host is under memory
pressure and starts to swap things out.

Before this "uncached" page is evicted, we need to make sure
we invalidate potential speculated, clean cache lines that are
sitting there, or the IO subsystem is going to swap out the
cached view, loosing the data that has been written directly
into memory.

BUG=chromium:846515
TEST=build/boot on hana with USE=kvm_host

Change-Id: Idd85714d4ee15667cebbbbd23e1c02feb7ed67fd
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
(cherry picked from commit 363ef89f8e9bcedc28b976d0fe2d858fe139c122)
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
[SR: context conflict]
 Conflicts:
	arch/arm/kvm/mmu.c
Reviewed-on: https://chromium-review.googlesource.com/1088048
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
3 files changed