On Sat, May 07, 2022, Jim Mattson wrote: > From: David Matlack <dmatlack@xxxxxxxxxx> > > Include the value of the "VM-instruction error" field from the current > VMCS (if any) in the error message for VMCLEAR and VMPTRLD, since each > of these instructions may result in more than one VM-instruction > error. Previously, this field was only reported for VMWRITE errors. > > Signed-off-by: David Matlack <dmatlack@xxxxxxxxxx> > [Rebased and refactored code; dropped the error number for INVVPID and > INVEPT; reworded commit message.] > Signed-off-by: Jim Mattson <jmattson@xxxxxxxxxx> > --- > arch/x86/kvm/vmx/vmx.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index d58b763df855..a25da991da07 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -392,12 +392,14 @@ noinline void vmwrite_error(unsigned long field, unsigned long value) > > noinline void vmclear_error(struct vmcs *vmcs, u64 phys_addr) > { > - vmx_insn_failed("kvm: vmclear failed: %p/%llx\n", vmcs, phys_addr); > + vmx_insn_failed("kvm: vmclear failed: %p/%llx err=%d\n", I highly doubt it will ever matter, but arguably this should be %u, not %d. > + vmcs, phys_addr, vmcs_read32(VM_INSTRUCTION_ERROR)); > } > > noinline void vmptrld_error(struct vmcs *vmcs, u64 phys_addr) > { > - vmx_insn_failed("kvm: vmptrld failed: %p/%llx\n", vmcs, phys_addr); > + vmx_insn_failed("kvm: vmptrld failed: %p/%llx err=%d\n", > + vmcs, phys_addr, vmcs_read32(VM_INSTRUCTION_ERROR)); > } > > noinline void invvpid_error(unsigned long ext, u16 vpid, gva_t gva) > -- > 2.36.0.512.ge40c2bad7a-goog >