Jan Kiszka wrote:
-
-       if (!npt_enabled && event_injection)
-               kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address);
+       else {
+               if (svm->vcpu.arch.interrupt.pending ||
+                               svm->vcpu.arch.exception.pending)
+                       kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address);
+       }

Without understanding yet why kvm_mmu_unprotect_page_virt is required
here,

That is needed in case interrupt injection failed because the process of injecting the interrupt (usually pushing data on the stack) writes to a write-protected page table.

I guess we need nmi_pending here as well.

--
Do not meddle in the internals of kernels, for they are subtle and quick to 
panic.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to