diff options
-rw-r--r-- | include/linux/netdevice.h | 2 | ||||
-rw-r--r-- | net/core/dev.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index b60c26b7d31c..bdf5465deb91 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1858,6 +1858,8 @@ static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) | |||
1858 | { | 1858 | { |
1859 | return skb_is_gso(skb) && | 1859 | return skb_is_gso(skb) && |
1860 | (!skb_gso_ok(skb, dev->features) || | 1860 | (!skb_gso_ok(skb, dev->features) || |
1861 | (skb_shinfo(skb)->frag_list && | ||
1862 | !(dev->features & NETIF_F_FRAGLIST)) || | ||
1861 | unlikely(skb->ip_summed != CHECKSUM_PARTIAL)); | 1863 | unlikely(skb->ip_summed != CHECKSUM_PARTIAL)); |
1862 | } | 1864 | } |
1863 | 1865 | ||
diff --git a/net/core/dev.c b/net/core/dev.c index f54cac76438a..e415f0b0d0d0 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1533,8 +1533,6 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features) | |||
1533 | __be16 type = skb->protocol; | 1533 | __be16 type = skb->protocol; |
1534 | int err; | 1534 | int err; |
1535 | 1535 | ||
1536 | BUG_ON(skb_shinfo(skb)->frag_list); | ||
1537 | |||
1538 | skb_reset_mac_header(skb); | 1536 | skb_reset_mac_header(skb); |
1539 | skb->mac_len = skb->network_header - skb->mac_header; | 1537 | skb->mac_len = skb->network_header - skb->mac_header; |
1540 | __skb_pull(skb, skb->mac_len); | 1538 | __skb_pull(skb, skb->mac_len); |