>       /* 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.

Reply via email to