> /* Require Write-Back (WB) memory type for VMCS accesses. */ >@@ -7313,11 +7328,12 @@ static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu, > } > } > >- if (idt_vectoring_info & VECTORING_INFO_DELIVER_CODE_MASK) { >- u32 err = vmcs_read32(error_code_field); >- kvm_requeue_exception_e(vcpu, vector, err); >- } else >- kvm_requeue_exception(vcpu, vector); >+ if (idt_vectoring_info & VECTORING_INFO_DELIVER_CODE_MASK) >+ kvm_requeue_exception_e(vcpu, vector, vmcs_read32(error_code_field), >+ idt_vectoring_info & INTR_INFO_NESTED_EXCEPTION_MASK); >+ else >+ kvm_requeue_exception(vcpu, vector, >+ idt_vectoring_info & INTR_INFO_NESTED_EXCEPTION_MASK); Exiting-event identification can also have bit 13 set, indicating a nested exception encountered and caused VM-exit. when reinjecting the exception to guests, kvm needs to set the "nested" bit, right? I suspect some changes to e.g., handle_exception_nmi() are needed.