From: liyongxin <liyongx...@huawei.com>

Union l3_hdr_info and l4_hdr_info have already been defined in
the hns3_enet.h, so it is unnecessary to define them elsewhere.

This patch removes the redundant definition, and reuses the one
defined in the hns3_enet.h.

Signed-off-by: liyongxin <liyongx...@huawei.com>
Signed-off-by: Peng Li <lipeng...@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazh...@huawei.com>
---
 .../net/ethernet/hisilicon/hns3/hns3_enet.c   | 32 +++----------------
 .../net/ethernet/hisilicon/hns3/hns3_enet.h   |  1 +
 2 files changed, 6 insertions(+), 27 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c 
b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 4b38c37eef8f..048b5fbdf8fa 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -655,11 +655,7 @@ static int hns3_set_tso(struct sk_buff *skb, u32 *paylen,
 static int hns3_get_l4_protocol(struct sk_buff *skb, u8 *ol4_proto,
                                u8 *il4_proto)
 {
-       union {
-               struct iphdr *v4;
-               struct ipv6hdr *v6;
-               unsigned char *hdr;
-       } l3;
+       union l3_hdr_info l3;
        unsigned char *l4_hdr;
        unsigned char *exthdr;
        u8 l4_proto_tmp;
@@ -712,17 +708,8 @@ static void hns3_set_l2l3l4_len(struct sk_buff *skb, u8 
ol4_proto,
                                u8 il4_proto, u32 *type_cs_vlan_tso,
                                u32 *ol_type_vlan_len_msec)
 {
-       union {
-               struct iphdr *v4;
-               struct ipv6hdr *v6;
-               unsigned char *hdr;
-       } l3;
-       union {
-               struct tcphdr *tcp;
-               struct udphdr *udp;
-               struct gre_base_hdr *gre;
-               unsigned char *hdr;
-       } l4;
+       union l3_hdr_info l3;
+       union l4_hdr_info l4;
        unsigned char *l2_hdr;
        u8 l4_proto = ol4_proto;
        u32 ol2_len;
@@ -821,12 +808,7 @@ static void hns3_set_l2l3l4_len(struct sk_buff *skb, u8 
ol4_proto,
 static bool hns3_tunnel_csum_bug(struct sk_buff *skb)
 {
 #define IANA_VXLAN_PORT        4789
-       union {
-               struct tcphdr *tcp;
-               struct udphdr *udp;
-               struct gre_base_hdr *gre;
-               unsigned char *hdr;
-       } l4;
+       union l4_hdr_info l4;
 
        l4.hdr = skb_transport_header(skb);
 
@@ -842,11 +824,7 @@ static int hns3_set_l3l4_type_csum(struct sk_buff *skb, u8 
ol4_proto,
                                   u8 il4_proto, u32 *type_cs_vlan_tso,
                                   u32 *ol_type_vlan_len_msec)
 {
-       union {
-               struct iphdr *v4;
-               struct ipv6hdr *v6;
-               unsigned char *hdr;
-       } l3;
+       union l3_hdr_info l3;
        u32 l4_proto = ol4_proto;
 
        l3.hdr = skb_network_header(skb);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h 
b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
index f3d248626ab3..71ff8f4d6c18 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
@@ -574,6 +574,7 @@ union l3_hdr_info {
 union l4_hdr_info {
        struct tcphdr *tcp;
        struct udphdr *udp;
+       struct gre_base_hdr *gre;
        unsigned char *hdr;
 };
 
-- 
2.20.1


Reply via email to