KVM: selftests: Move "struct hv_enlightenments" to x86_64/svm.h

[ Upstream commit 381fc63ac0 ]

Move Hyper-V's VMCB "struct hv_enlightenments" to the svm.h header so
that the struct can be referenced in "struct vmcb_control_area".
Alternatively, a dedicated header for SVM+Hyper-V could be added, a la
x86_64/evmcs.h, but it doesn't appear that Hyper-V will end up needing
a wholesale replacement for the VMCB.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221101145426.251680-3-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Stable-dep-of: e5c972c1fa ("KVM: SVM: Flush Hyper-V TLB when required")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Sean Christopherson 2022-11-01 15:53:40 +01:00 committed by Greg Kroah-Hartman
parent 59ef934fcc
commit 38b091c8a3
2 changed files with 17 additions and 18 deletions

View file

@ -58,6 +58,23 @@ enum {
INTERCEPT_RDPRU,
};
struct hv_enlightenments {
struct __packed hv_enlightenments_control {
u32 nested_flush_hypercall:1;
u32 msr_bitmap:1;
u32 enlightened_npt_tlb: 1;
u32 reserved:29;
} __packed hv_enlightenments_control;
u32 hv_vp_id;
u64 hv_vm_id;
u64 partition_assist_page;
u64 reserved;
} __packed;
/*
* Hyper-V uses the software reserved clean bit in VMCB
*/
#define HV_VMCB_NESTED_ENLIGHTENMENTS (1U << 31)
struct __attribute__ ((__packed__)) vmcb_control_area {
u32 intercept_cr;

View file

@ -23,24 +23,6 @@
#define L2_GUEST_STACK_SIZE 256
struct hv_enlightenments {
struct __packed hv_enlightenments_control {
u32 nested_flush_hypercall:1;
u32 msr_bitmap:1;
u32 enlightened_npt_tlb: 1;
u32 reserved:29;
} __packed hv_enlightenments_control;
u32 hv_vp_id;
u64 hv_vm_id;
u64 partition_assist_page;
u64 reserved;
} __packed;
/*
* Hyper-V uses the software reserved clean bit in VMCB
*/
#define HV_VMCB_NESTED_ENLIGHTENMENTS (1U << 31)
void l2_guest_code(void)
{
GUEST_SYNC(3);