diff options
author | David S. Miller <davem@davemloft.net> | 2012-09-28 14:40:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-28 14:40:49 -0400 |
commit | 6a06e5e1bb217be077e1f8ee2745b4c5b1aa02db (patch) | |
tree | 8faea23112a11f52524eb413f71b7b02712d8b53 /net/core | |
parent | d9f72f359e00a45a6cd7cc2d5121b04b9dc927e1 (diff) | |
parent | 6672d90fe779dc0dfffe027c3ede12609df091c2 (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')
-rw-r--r-- | net/core/dev.c | 5 | ||||
-rw-r--r-- | net/core/skbuff.c | 4 | ||||
-rw-r--r-- | net/core/sock.c | 3 |
3 files changed, 8 insertions, 4 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) | |||
2156 | static netdev_features_t harmonize_features(struct sk_buff *skb, | 2156 | static 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 { |
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 607a70ff2cc2..d607bae075d5 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -3497,7 +3497,9 @@ bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from, | |||
3497 | if (!skb_cloned(from)) | 3497 | if (!skb_cloned(from)) |
3498 | skb_shinfo(from)->nr_frags = 0; | 3498 | skb_shinfo(from)->nr_frags = 0; |
3499 | 3499 | ||
3500 | /* if the skb is cloned this does nothing since we set nr_frags to 0 */ | 3500 | /* if the skb is not cloned this does nothing |
3501 | * since we set nr_frags to 0. | ||
3502 | */ | ||
3501 | for (i = 0; i < skb_shinfo(from)->nr_frags; i++) | 3503 | for (i = 0; i < skb_shinfo(from)->nr_frags; i++) |
3502 | skb_frag_ref(from, i); | 3504 | skb_frag_ref(from, i); |
3503 | 3505 | ||
diff --git a/net/core/sock.c b/net/core/sock.c index f5a426097236..7eac86463eb2 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -691,7 +691,8 @@ set_rcvbuf: | |||
691 | 691 | ||
692 | case SO_KEEPALIVE: | 692 | case SO_KEEPALIVE: |
693 | #ifdef CONFIG_INET | 693 | #ifdef CONFIG_INET |
694 | if (sk->sk_protocol == IPPROTO_TCP) | 694 | if (sk->sk_protocol == IPPROTO_TCP && |
695 | sk->sk_type == SOCK_STREAM) | ||
695 | tcp_set_keepalive(sk, valbool); | 696 | tcp_set_keepalive(sk, valbool); |
696 | #endif | 697 | #endif |
697 | sock_valbool_flag(sk, SOCK_KEEPOPEN, valbool); | 698 | sock_valbool_flag(sk, SOCK_KEEPOPEN, valbool); |