From: Joerg Roedel <jroe...@suse.de>

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 <jroe...@suse.de>
---
 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.31.1

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to