summaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorOliver Upton <oliver.upton@linux.dev>2023-04-04 15:40:38 +0000
committerMarc Zyngier <maz@kernel.org>2023-04-05 12:07:41 +0100
commite65733b5c59a1ea20324a03494364958bef3fc68 (patch)
tree0cab1bf283e8914a637776b3427a0abfdf0a55f2 /include/uapi
parente8d018dd0257f744ca50a729e3d042cf2ec9da65 (diff)
downloadlinux-stable-e65733b5c59a1ea20324a03494364958bef3fc68.tar.gz
linux-stable-e65733b5c59a1ea20324a03494364958bef3fc68.tar.bz2
linux-stable-e65733b5c59a1ea20324a03494364958bef3fc68.zip
KVM: x86: Redefine 'longmode' as a flag for KVM_EXIT_HYPERCALL
The 'longmode' field is a bit annoying as it blows an entire __u32 to represent a boolean value. Since other architectures are looking to add support for KVM_EXIT_HYPERCALL, now is probably a good time to clean it up. Redefine the field (and the remaining padding) as a set of flags. Preserve the existing ABI by using bit 0 to indicate if the guest was in long mode and requiring that the remaining 31 bits must be zero. Cc: Paolo Bonzini <pbonzini@redhat.com> Acked-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Oliver Upton <oliver.upton@linux.dev> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20230404154050.2270077-2-oliver.upton@linux.dev
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/kvm.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index d77aef872a0a..dd42d7dfb86c 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -341,8 +341,13 @@ struct kvm_run {
__u64 nr;
__u64 args[6];
__u64 ret;
- __u32 longmode;
- __u32 pad;
+
+ union {
+#ifndef __KERNEL__
+ __u32 longmode;
+#endif
+ __u64 flags;
+ };
} hypercall;
/* KVM_EXIT_TPR_ACCESS */
struct {