KVM: fix userspace ABI breakage

The following part of commit 9ef621d3be56e1188300476a8102ff54f7b6793f
(KVM: Support mixed endian machines) changed on the size of a struct
that is exported to userspace:

include/linux/kvm.h:

@@ -318,14 +318,14 @@ struct kvm_trace_rec {
__u32 vcpu_id;
union {
struct {
- __u32 cycle_lo, cycle_hi;
+ __u64 cycle_u64;
__u32 extra_u32[KVM_TRC_EXTRA_MAX];
} cycle;
struct {
__u32 extra_u32[KVM_TRC_EXTRA_MAX];
} nocycle;
} u;
-};
+} __attribute__((packed));

Packing a struct was the correct idea, but it packed the wrong struct.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Avi Kivity <avi@qumranet.com>

authored by Adrian Bunk and committed by Avi Kivity 1327138e cd5998eb

+2 -2
+2 -2
include/linux/kvm.h
··· 320 struct { 321 __u64 cycle_u64; 322 __u32 extra_u32[KVM_TRC_EXTRA_MAX]; 323 - } cycle; 324 struct { 325 __u32 extra_u32[KVM_TRC_EXTRA_MAX]; 326 } nocycle; 327 } u; 328 - } __attribute__((packed)); 329 330 #define KVMIO 0xAE 331
··· 320 struct { 321 __u64 cycle_u64; 322 __u32 extra_u32[KVM_TRC_EXTRA_MAX]; 323 + } __attribute__((packed)) cycle; 324 struct { 325 __u32 extra_u32[KVM_TRC_EXTRA_MAX]; 326 } nocycle; 327 } u; 328 + }; 329 330 #define KVMIO 0xAE 331