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.
The current patch relies on kvm_multiple_exception() to do that. But TBH, I'm not sure it can recognize all nested cases. I probably should revisit it.