lkml.org 
[lkml]   [2008]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patches in this message
    /
    Date
    From
    Subject[2.6 patch] 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 <adrian.bunk@movial.fi>
    ---
    857d4ddbb62bc61e44b8870cda8ea1c38c6e1905
    diff --git a/include/linux/kvm.h b/include/linux/kvm.h
    index 0ea064c..ad11cfe 100644
    --- a/include/linux/kvm.h
    +++ b/include/linux/kvm.h
    @@ -320,12 +320,12 @@ struct kvm_trace_rec {
    struct {
    __u64 cycle_u64;
    __u32 extra_u32[KVM_TRC_EXTRA_MAX];
    - } cycle;
    + } __attribute__((packed)) cycle;
    struct {
    __u32 extra_u32[KVM_TRC_EXTRA_MAX];
    } nocycle;
    } u;
    -} __attribute__((packed));
    +};

    #define KVMIO 0xAE



    \
     
     \ /
      Last update: 2008-07-21 17:01    [W:0.019 / U:121.164 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site