fix(pauth): emit isb after pauth key update
Following e7d7f326e1a262289ed:
Hypervisor/SPMC pointer authentication key restoration misses an ISB
after key update causing function instrumentation (PACIASP/AUTIASP) to
possibly use stale key value of before the PAuth key MSR update.
Change-Id: I52fe4fb76f23bbd79096962cc17d395ef5aa19cf
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
diff --git a/src/arch/aarch64/hypervisor/exceptions.S b/src/arch/aarch64/hypervisor/exceptions.S
index 7de43a8..41dd600 100644
--- a/src/arch/aarch64/hypervisor/exceptions.S
+++ b/src/arch/aarch64/hypervisor/exceptions.S
@@ -492,6 +492,7 @@
msr APDBKEYHI_EL1, xzr
msr APGAKEYLO_EL1, xzr
msr APGAKEYHI_EL1, xzr
+ /* Omit ISB as SMC following is a context synchronizing event. */
#endif
smc #0
@@ -784,6 +785,7 @@
/* Restore vCPU APIA key. */
msr APIAKEYLO_EL1, x1
msr APIAKEYHI_EL1, x2
+ /* Omit ISB as ERET following is a context synchronizing event. */
#endif
ldp x4, x5, [x0, #VCPU_REGS + 8 * 4]