On Tue, Oct 9, 2018 at 9:08 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > On 08/10/2018 20:29, Jim Mattson wrote: >> diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt >> index 647f94128a85..2df2cca81cf5 100644 >> --- a/Documentation/virtual/kvm/api.txt >> +++ b/Documentation/virtual/kvm/api.txt >> @@ -850,7 +850,7 @@ struct kvm_vcpu_events { >> __u8 injected; >> __u8 nr; >> __u8 has_error_code; >> - __u8 pad; >> + __u8 has_payload; >> __u32 error_code; >> } exception; >> struct { >> @@ -873,9 +873,11 @@ struct kvm_vcpu_events { >> __u8 smm_inside_nmi; >> __u8 latched_init; >> } smi; >> + __u32 reserved[7]; >> + __u64 exception_payload; >> }; > > This changes the size of the struct, and thus the ioctl number. The > good part is that you don't need the capability, the bad part is that > you need a struct kvm_vcpu_events2 and ioctl KVM_GET/SET_VCPU_EVENTS2. It's not in the api.txt file, but there's an existing __u32 reserved[9] in arch/x86/include/uapi/asm/kvm.h.