aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index bbfabf3012b6..2a801380b502 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1903,15 +1903,14 @@ static inline int net_gso_ok(int features, int gso_type)
1903 1903
1904static inline int skb_gso_ok(struct sk_buff *skb, int features) 1904static inline int skb_gso_ok(struct sk_buff *skb, int features)
1905{ 1905{
1906 return net_gso_ok(features, skb_shinfo(skb)->gso_type); 1906 return net_gso_ok(features, skb_shinfo(skb)->gso_type) &&
1907 (!skb_shinfo(skb)->frag_list || (features & NETIF_F_FRAGLIST));
1907} 1908}
1908 1909
1909static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) 1910static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb)
1910{ 1911{
1911 return skb_is_gso(skb) && 1912 return skb_is_gso(skb) &&
1912 (!skb_gso_ok(skb, dev->features) || 1913 (!skb_gso_ok(skb, dev->features) ||
1913 (skb_shinfo(skb)->frag_list &&
1914 !(dev->features & NETIF_F_FRAGLIST)) ||
1915 unlikely(skb->ip_summed != CHECKSUM_PARTIAL)); 1914 unlikely(skb->ip_summed != CHECKSUM_PARTIAL));
1916} 1915}
1917 1916