From: Dmitry Kravkov Date: Thu, 28 Aug 2014 13:54:23 +0000 (+0300) Subject: bnx2x: prevent incorrect byte-swap in BE X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=55ef5c89db81aabf2c3802de830774feb7eb8b22;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git 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 Signed-off-by: Dmitry Kravkov Signed-off-by: David S. Miller --- 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 { /* tunneling related data */ struct eth_tunnel_data { -#if defined(__BIG_ENDIAN) - __le16 dst_mid; - __le16 dst_lo; -#elif defined(__LITTLE_ENDIAN) __le16 dst_lo; __le16 dst_mid; -#endif -#if defined(__BIG_ENDIAN) - __le16 fw_ip_hdr_csum; - __le16 dst_hi; -#elif defined(__LITTLE_ENDIAN) __le16 dst_hi; __le16 fw_ip_hdr_csum; -#endif -#if defined(__BIG_ENDIAN) - u8 flags; -#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER (0x1<<0) -#define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0 -#define ETH_TUNNEL_DATA_RESERVED (0x7F<<1) -#define ETH_TUNNEL_DATA_RESERVED_SHIFT 1 - u8 ip_hdr_start_inner_w; - __le16 pseudo_csum; -#elif defined(__LITTLE_ENDIAN) __le16 pseudo_csum; u8 ip_hdr_start_inner_w; u8 flags; @@ -4013,7 +3994,6 @@ struct eth_tunnel_data { #define ETH_TUNNEL_DATA_IP_HDR_TYPE_OUTER_SHIFT 0 #define ETH_TUNNEL_DATA_RESERVED (0x7F<<1) #define ETH_TUNNEL_DATA_RESERVED_SHIFT 1 -#endif }; /* union for mac addresses and for tunneling data.