]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
qede: Fix setting Skb network header
authorManish Chopra <manish.chopra@qlogic.com>
Wed, 20 Apr 2016 07:03:28 +0000 (03:03 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 8 Jul 2016 19:29:27 +0000 (12:29 -0700)
Skb's network header needs to be set before extracting IPv4/IPv6
headers from it.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Yuval Mintz <yuval.mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 23732603
Signed-off-by: Manjunath Govindashetty <manjunath.govindashetty@oracle.com>
drivers/net/ethernet/qlogic/qede/qede_main.c

index 37fbfd2b96253d72c07918913a86e292e49c4022..2dc523720fe30feefae445a81bc81e15bcbbc8da 100644 (file)
@@ -1065,7 +1065,6 @@ static void qede_gro_ip_csum(struct sk_buff *skb)
        const struct iphdr *iph = ip_hdr(skb);
        struct tcphdr *th;
 
-       skb_set_network_header(skb, 0);
        skb_set_transport_header(skb, sizeof(struct iphdr));
        th = tcp_hdr(skb);
 
@@ -1080,7 +1079,6 @@ static void qede_gro_ipv6_csum(struct sk_buff *skb)
        struct ipv6hdr *iph = ipv6_hdr(skb);
        struct tcphdr *th;
 
-       skb_set_network_header(skb, 0);
        skb_set_transport_header(skb, sizeof(struct ipv6hdr));
        th = tcp_hdr(skb);
 
@@ -1097,6 +1095,8 @@ static void qede_gro_receive(struct qede_dev *edev,
 {
 #ifdef CONFIG_INET
        if (skb_shinfo(skb)->gso_size) {
+               skb_set_network_header(skb, 0);
+
                switch (skb->protocol) {
                case htons(ETH_P_IP):
                        qede_gro_ip_csum(skb);