summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiana Craciun <diana.craciun@nxp.com>2018-12-12 15:03:07 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2018-12-20 12:59:03 +0100
commite7aa61f47b23afbec41031bc47ca8d6cb6516abc (patch)
treefba9a1be4ce7035803f8833bda349a2a9518781b
parentpowerpc/fsl: Flush the branch predictor at each kernel entry (32 bit) (diff)
downloadlinux-e7aa61f47b23afbec41031bc47ca8d6cb6516abc.tar.xz
linux-e7aa61f47b23afbec41031bc47ca8d6cb6516abc.zip
powerpc/fsl: Flush branch predictor when entering KVM
Switching from the guest to host is another place where the speculative accesses can be exploited. Flush the branch predictor when entering KVM. Signed-off-by: Diana Craciun <diana.craciun@nxp.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--arch/powerpc/kvm/bookehv_interrupts.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/bookehv_interrupts.S b/arch/powerpc/kvm/bookehv_interrupts.S
index 051af7d97327..4e5081e58409 100644
--- a/arch/powerpc/kvm/bookehv_interrupts.S
+++ b/arch/powerpc/kvm/bookehv_interrupts.S
@@ -75,6 +75,10 @@
PPC_LL r1, VCPU_HOST_STACK(r4)
PPC_LL r2, HOST_R2(r1)
+START_BTB_FLUSH_SECTION
+ BTB_FLUSH(r10)
+END_BTB_FLUSH_SECTION
+
mfspr r10, SPRN_PID
lwz r8, VCPU_HOST_PID(r4)
PPC_LL r11, VCPU_SHARED(r4)