From 0b0ea264f4f83566d768a1368a3a9a14e0618da4 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Mon, 15 Dec 2008 23:27:47 -0800 Subject: [PATCH] --- yaml --- r: 122713 b: refs/heads/master c: 1a881f27c50b4fbd6858a8696a189263621136b0 h: refs/heads/master i: 122711: e55a4b2f75a50f2edf86b19c94e9fc802629cabe v: v3 --- [refs] | 2 +- trunk/include/linux/netdevice.h | 2 ++ trunk/net/core/dev.c | 2 -- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index b4fed3e3b931..6bef157e1317 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 89319d3801d1d3ac29c7df1f067038986f267d29 +refs/heads/master: 1a881f27c50b4fbd6858a8696a189263621136b0 diff --git a/trunk/include/linux/netdevice.h b/trunk/include/linux/netdevice.h index b60c26b7d31c..bdf5465deb91 100644 --- a/trunk/include/linux/netdevice.h +++ b/trunk/include/linux/netdevice.h @@ -1858,6 +1858,8 @@ static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) { return skb_is_gso(skb) && (!skb_gso_ok(skb, dev->features) || + (skb_shinfo(skb)->frag_list && + !(dev->features & NETIF_F_FRAGLIST)) || unlikely(skb->ip_summed != CHECKSUM_PARTIAL)); } diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index f54cac76438a..e415f0b0d0d0 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -1533,8 +1533,6 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features) __be16 type = skb->protocol; int err; - BUG_ON(skb_shinfo(skb)->frag_list); - skb_reset_mac_header(skb); skb->mac_len = skb->network_header - skb->mac_header; __skb_pull(skb, skb->mac_len);