OSDN Git Service

KVM: nVMX: Fix some comment typos and coding style
authorMiaohe Lin <linmiaohe@huawei.com>
Fri, 7 Feb 2020 15:22:45 +0000 (23:22 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 12 Feb 2020 19:09:43 +0000 (20:09 +0100)
Fix some typos in the comments. Also fix coding style.
[Sean Christopherson rewrites the comment of write_fault_to_shadow_pgtable
field in struct kvm_vcpu_arch.]

Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/vmx/nested.c

index 4dffbc1..40a0c0f 100644 (file)
@@ -781,9 +781,19 @@ struct kvm_vcpu_arch {
        u64 msr_kvm_poll_control;
 
        /*
-        * Indicate whether the access faults on its page table in guest
-        * which is set when fix page fault and used to detect unhandeable
-        * instruction.
+        * Indicates the guest is trying to write a gfn that contains one or
+        * more of the PTEs used to translate the write itself, i.e. the access
+        * is changing its own translation in the guest page tables.  KVM exits
+        * to userspace if emulation of the faulting instruction fails and this
+        * flag is set, as KVM cannot make forward progress.
+        *
+        * If emulation fails for a write to guest page tables, KVM unprotects
+        * (zaps) the shadow page for the target gfn and resumes the guest to
+        * retry the non-emulatable instruction (on hardware).  Unprotecting the
+        * gfn doesn't allow forward progress for a self-changing access because
+        * doing so also zaps the translation for the gfn, i.e. retrying the
+        * instruction will hit a !PRESENT fault, which results in a new shadow
+        * page and sends KVM back to square one.
         */
        bool write_fault_to_shadow_pgtable;
 
index 1586aaa..3589cd3 100644 (file)
@@ -544,7 +544,8 @@ static void nested_vmx_disable_intercept_for_msr(unsigned long *msr_bitmap_l1,
        }
 }
 
-static inline void enable_x2apic_msr_intercepts(unsigned long *msr_bitmap) {
+static inline void enable_x2apic_msr_intercepts(unsigned long *msr_bitmap)
+{
        int msr;
 
        for (msr = 0x800; msr <= 0x8ff; msr += BITS_PER_LONG) {
@@ -1981,7 +1982,7 @@ static int nested_vmx_handle_enlightened_vmptrld(struct kvm_vcpu *vcpu,
        }
 
        /*
-        * Clean fields data can't de used on VMLAUNCH and when we switch
+        * Clean fields data can't be used on VMLAUNCH and when we switch
         * between different L2 guests as KVM keeps a single VMCS12 per L1.
         */
        if (from_launch || evmcs_gpa_changed)