fm10k: pack TLV overlay structures
authorJacob Keller <jacob.e.keller@intel.com>
Wed, 3 Jun 2015 23:31:09 +0000 (16:31 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 17 Jun 2015 21:21:22 +0000 (14:21 -0700)
This patch adds the __attribute__((packed)) indicator to some structures
which are overlayed onto a TLV message. These structures must be packed
as small as possible in order to correctly align when copied into the
mailbox buffer. Without doing so, the receiving mailbox code incorrectly
parses the values and we get invalid message responses from the switch
manager software.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/fm10k/fm10k_pf.h

index 7ab1db4fff32027b5b72501a69b690fd6e90343d..40a0dbc62a04af1a8fc659b012b3fb0d8d4d0e27 100644 (file)
@@ -81,26 +81,26 @@ struct fm10k_mac_update {
        __le16  glort;
        u8      flags;
        u8      action;
-};
+} __packed;
 
 struct fm10k_global_table_data {
        __le32  used;
        __le32  avail;
-};
+} __packed;
 
 struct fm10k_swapi_error {
        __le32                          status;
        struct fm10k_global_table_data  mac;
        struct fm10k_global_table_data  nexthop;
        struct fm10k_global_table_data  ffu;
-};
+} __packed;
 
 struct fm10k_swapi_1588_timestamp {
        __le64 egress;
        __le64 ingress;
        __le16 dglort;
        __le16 sglort;
-};
+} __packed;
 
 s32 fm10k_msg_lport_map_pf(struct fm10k_hw *, u32 **, struct fm10k_mbx_info *);
 extern const struct fm10k_tlv_attr fm10k_lport_map_msg_attr[];