2021-09-13 15:57:48

by Joerg Roedel

[permalink] [raw]
Subject: [PATCH v2 11/12] x86/sev: Handle CLFLUSH MMIO events

From: Joerg Roedel <[email protected]>

Handle CLFLUSH instruction to MMIO memory in the #VC handler. The
instruction is ignored by the handler, as the Hypervisor is
responsible for cache management of emulated MMIO memory.

Signed-off-by: Joerg Roedel <[email protected]>
---
arch/x86/kernel/sev-shared.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/arch/x86/kernel/sev-shared.c b/arch/x86/kernel/sev-shared.c
index a7a0793c4f98..682fa202444f 100644
--- a/arch/x86/kernel/sev-shared.c
+++ b/arch/x86/kernel/sev-shared.c
@@ -632,6 +632,15 @@ static enum es_result vc_handle_mmio_twobyte_ops(struct ghcb *ghcb,
long *reg_data;

switch (insn->opcode.bytes[1]) {
+ /* CLFLUSH */
+ case 0xae:
+ /*
+ * Ignore CLFLUSHes - those go to emulated MMIO anyway and the
+ * hypervisor is responsible for cache management.
+ */
+ ret = ES_OK;
+ break;
+
/* MMIO Read w/ zero-extension */
case 0xb6:
bytes = 1;
--
2.33.0