aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Kravkov <Dmitry.Kravkov@qlogic.com>2014-08-28 09:54:23 -0400
committerDavid S. Miller <davem@davemloft.net>2014-09-01 20:53:57 -0400
commit55ef5c89db81aabf2c3802de830774feb7eb8b22 (patch)
treead6c97bf38c69856a9920afcc084f53ef6faec74
parenta5325ae5b8bff051933a754db7727fc9823e6414 (diff)
bnx2x: prevent incorrect byte-swap in BE
Fixes incorrectly defined struct in FW HSI for BE platform. Affects tunneling, tx-switching and anti-spoofing. Introduced in e42780b66aab88d3a82b6087bcd6095b90eecde7 bnx2x: Utilize FW 7.10.51 Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dmitry Kravkov <Dmitry.Kravkov@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h20
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
index 7ea04537ecbf..5579d4bdbaac 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
@@ -3983,29 +3983,10 @@ struct eth_mac_addresses {
3983 3983
3984/* tunneling related data */ 3984/* tunneling related data */
3985struct eth_tunnel_data { 3985struct eth_tunnel_data {
3986#if defined(__BIG_ENDIAN)
3987 __le16 dst_mid;
3988 __le16 dst_lo;
3989#elif defined(__LITTLE_ENDIAN)
3990 __le16 dst_lo; 3986 __le16 dst_lo;
3991 __le16 dst_mid; 3987 __le16 dst_mid;
3992#endif
3993#if defined(__BIG_ENDIAN)
3994 __le16 fw_ip_hdr_csum;
3995 __le16 dst_hi;
3996#elif defined(__LITTLE_ENDIAN)
3997 __le16 dst_hi; 3988 __le16 dst_hi;
3998 __le16 fw_ip_hdr_csum; 3989 __le16 fw_ip_hdr_csum;
3999#endif
4000#if defined(__BIG_ENDIAN)
4001 u8 flags;
4002#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER (0x1<<0)
4003#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0
4004#define ETH_TUNNEL_DATA_RESERVED (0x7F<<1)
4005#define ETH_TUNNEL_DATA_RESERVED_SHIFT 1
4006 u8 ip_hdr_start_inner_w;
4007 __le16 pseudo_csum;
4008#elif defined(__LITTLE_ENDIAN)
4009 __le16 pseudo_csum; 3990 __le16 pseudo_csum;
4010 u8 ip_hdr_start_inner_w; 3991 u8 ip_hdr_start_inner_w;
4011 u8 flags; 3992 u8 flags;
@@ -4013,7 +3994,6 @@ struct eth_tunnel_data {
4013#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0 3994#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0
4014#define ETH_TUNNEL_DATA_RESERVED (0x7F<<1) 3995#define ETH_TUNNEL_DATA_RESERVED (0x7F<<1)
4015#define ETH_TUNNEL_DATA_RESERVED_SHIFT 1 3996#define ETH_TUNNEL_DATA_RESERVED_SHIFT 1
4016#endif
4017}; 3997};
4018 3998
4019/* union for mac addresses and for tunneling data. 3999/* union for mac addresses and for tunneling data.