mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition
[ Upstream commitea9da788a6] Section 1.9 of TLFS v6.0b says: "All structures are padded in such a way that fields are aligned naturally (that is, an 8-byte field is aligned to an offset of 8 bytes and so on)". 'struct enlightened_vmcs' has a glitch: ... struct { u32 nested_flush_hypercall:1; /* 836: 0 4 */ u32 msr_bitmap:1; /* 836: 1 4 */ u32 reserved:30; /* 836: 2 4 */ } hv_enlightenments_control; /* 836 4 */ u32 hv_vp_id; /* 840 4 */ u64 hv_vm_id; /* 844 8 */ u64 partition_assist_page; /* 852 8 */ ... And the observed values in 'partition_assist_page' make no sense at all. Fix the layout by padding the structure properly. Fixes:68d1eb72ee("x86/hyper-v: define struct hv_enlightened_vmcs and clean field bits") Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Reviewed-by: Michael Kelley <mikelley@microsoft.com> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Sean Christopherson <seanjc@google.com> Link: https://lore.kernel.org/r/20220830133737.1539624-2-vkuznets@redhat.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
56ab37073a
commit
51ff85b04e
@@ -546,7 +546,7 @@ struct hv_enlightened_vmcs {
|
|||||||
u64 guest_rip;
|
u64 guest_rip;
|
||||||
|
|
||||||
u32 hv_clean_fields;
|
u32 hv_clean_fields;
|
||||||
u32 hv_padding_32;
|
u32 padding32_1;
|
||||||
u32 hv_synthetic_controls;
|
u32 hv_synthetic_controls;
|
||||||
struct {
|
struct {
|
||||||
u32 nested_flush_hypercall:1;
|
u32 nested_flush_hypercall:1;
|
||||||
@@ -554,7 +554,7 @@ struct hv_enlightened_vmcs {
|
|||||||
u32 reserved:30;
|
u32 reserved:30;
|
||||||
} __packed hv_enlightenments_control;
|
} __packed hv_enlightenments_control;
|
||||||
u32 hv_vp_id;
|
u32 hv_vp_id;
|
||||||
|
u32 padding32_2;
|
||||||
u64 hv_vm_id;
|
u64 hv_vm_id;
|
||||||
u64 partition_assist_page;
|
u64 partition_assist_page;
|
||||||
u64 padding64_4[4];
|
u64 padding64_4[4];
|
||||||
|
|||||||
Reference in New Issue
Block a user