OSDN Git Service

KVM: x86: Clarify the kvm_run.emulation_failure structure layout
authorDavid Edmondson <david.edmondson@oracle.com>
Mon, 20 Sep 2021 10:37:34 +0000 (11:37 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 25 Oct 2021 10:48:24 +0000 (06:48 -0400)
Until more flags for kvm_run.emulation_failure flags are defined, it
is undetermined whether new payload elements corresponding to those
flags will be additive or alternative. As a hint to userspace that an
alternative is possible, wrap the current payload elements in a union.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: David Edmondson <david.edmondson@oracle.com>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210920103737.2696756-2-david.edmondson@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/uapi/linux/kvm.h

index 5ca5ffe..2c8aa8d 100644 (file)
@@ -403,8 +403,12 @@ struct kvm_run {
                        __u32 suberror;
                        __u32 ndata;
                        __u64 flags;
-                       __u8  insn_size;
-                       __u8  insn_bytes[15];
+                       union {
+                               struct {
+                                       __u8  insn_size;
+                                       __u8  insn_bytes[15];
+                               };
+                       };
                } emulation_failure;
                /* KVM_EXIT_OSI */
                struct {