aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-09-28 14:40:49 -0400
committerDavid S. Miller <davem@davemloft.net>2012-09-28 14:40:49 -0400
commit6a06e5e1bb217be077e1f8ee2745b4c5b1aa02db (patch)
tree8faea23112a11f52524eb413f71b7b02712d8b53 /net/core/dev.c
parentd9f72f359e00a45a6cd7cc2d5121b04b9dc927e1 (diff)
parent6672d90fe779dc0dfffe027c3ede12609df091c2 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/team/team.c drivers/net/usb/qmi_wwan.c net/batman-adv/bat_iv_ogm.c net/ipv4/fib_frontend.c net/ipv4/route.c net/l2tp/l2tp_netlink.c The team, fib_frontend, route, and l2tp_netlink conflicts were simply overlapping changes. qmi_wwan and bat_iv_ogm were of the "use HEAD" variety. With help from Antonio Quartulli. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 707b12425a79..3e645f3751bf 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2156,7 +2156,8 @@ static bool can_checksum_protocol(netdev_features_t features, __be16 protocol)
2156static netdev_features_t harmonize_features(struct sk_buff *skb, 2156static netdev_features_t harmonize_features(struct sk_buff *skb,
2157 __be16 protocol, netdev_features_t features) 2157 __be16 protocol, netdev_features_t features)
2158{ 2158{
2159 if (!can_checksum_protocol(features, protocol)) { 2159 if (skb->ip_summed != CHECKSUM_NONE &&
2160 !can_checksum_protocol(features, protocol)) {
2160 features &= ~NETIF_F_ALL_CSUM; 2161 features &= ~NETIF_F_ALL_CSUM;
2161 features &= ~NETIF_F_SG; 2162 features &= ~NETIF_F_SG;
2162 } else if (illegal_highdma(skb->dev, skb)) { 2163 } else if (illegal_highdma(skb->dev, skb)) {
@@ -3345,7 +3346,7 @@ ncls:
3345 3346
3346 if (pt_prev) { 3347 if (pt_prev) {
3347 if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC))) 3348 if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC)))
3348 ret = -ENOMEM; 3349 goto drop;
3349 else 3350 else
3350 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev); 3351 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
3351 } else { 3352 } else {