From b5f1fb519418d3e7c3c91ab6329545b49c3a5386 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Wed, 3 Jun 2009 21:20:51 -0700 Subject: [PATCH] --- yaml --- r: 150618 b: refs/heads/master c: 278b2513f76161a9cf1ebddd620dc9d1714fe573 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/netdevice.h | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index bd133e5152bb..c06525ddc41f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 56c8f140719e6f62836fb645d3fd96c6289907fb +refs/heads/master: 278b2513f76161a9cf1ebddd620dc9d1714fe573 diff --git a/trunk/include/linux/netdevice.h b/trunk/include/linux/netdevice.h index bbfabf3012b6..2a801380b502 100644 --- a/trunk/include/linux/netdevice.h +++ b/trunk/include/linux/netdevice.h @@ -1903,15 +1903,14 @@ static inline int net_gso_ok(int features, int gso_type) static inline int skb_gso_ok(struct sk_buff *skb, int features) { - return net_gso_ok(features, skb_shinfo(skb)->gso_type); + return net_gso_ok(features, skb_shinfo(skb)->gso_type) && + (!skb_shinfo(skb)->frag_list || (features & NETIF_F_FRAGLIST)); } 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)); }