This is needed for the introspection subsystem to track the changes to
descriptor table registers.

Signed-off-by: Adalbert Lazăr <[email protected]>
---
 arch/x86/kvm/x86.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index d35cdda115cc..2aaa0dd8b02a 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -5539,11 +5539,14 @@ static int kvm_write_guest_virt_helper(gva_t addr, void 
*val, unsigned int bytes
 
                if (gpa == UNMAPPED_GVA)
                        return X86EMUL_PROPAGATE_FAULT;
+               if (!kvm_page_track_prewrite(vcpu, gpa, addr, data, towrite))
+                       return X86EMUL_RETRY_INSTR;
                ret = kvm_vcpu_write_guest(vcpu, gpa, data, towrite);
                if (ret < 0) {
                        r = X86EMUL_IO_NEEDED;
                        goto out;
                }
+               kvm_page_track_write(vcpu, gpa, addr, data, towrite);
 
                bytes -= towrite;
                data += towrite;
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to