diff options
author | David S. Miller <davem@davemloft.net> | 2018-10-21 11:54:28 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-21 11:54:28 -0700 |
commit | 21ea1d36f6dfcb1d59184937c672022d5d01902a (patch) | |
tree | f632c6e44500c5c0b1408594ac8b0ca4541c1332 /net | |
parent | d92060bc69233a8175a0c2bfa0d2bce123cace2d (diff) | |
parent | 23469de647c4c7b68b5d135927b1c509f0e757e6 (diff) | |
download | linux-21ea1d36f6dfcb1d59184937c672022d5d01902a.tar.bz2 |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
David Ahern's dump indexing bug fix in 'net' overlapped the
change of the function signature of inet6_fill_ifaddr() in
'net-next'. Trivially resolved.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/neighbour.c | 3 | ||||
-rw-r--r-- | net/core/skbuff.c | 5 | ||||
-rw-r--r-- | net/ipv6/addrconf.c | 6 |
3 files changed, 8 insertions, 6 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 69c41cb3966d..ee605d9d8bd4 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -1167,8 +1167,7 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, neigh->nud_state = new; err = 0; notify = old & NUD_VALID; - if (((old & (NUD_INCOMPLETE | NUD_PROBE)) || - (flags & NEIGH_UPDATE_F_ADMIN)) && + if ((old & (NUD_INCOMPLETE | NUD_PROBE)) && (new & NUD_FAILED)) { neigh_invalidate(neigh); notify = 1; diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 54b961de9538..946de0e24c87 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -1846,8 +1846,9 @@ int pskb_trim_rcsum_slow(struct sk_buff *skb, unsigned int len) if (skb->ip_summed == CHECKSUM_COMPLETE) { int delta = skb->len - len; - skb->csum = csum_sub(skb->csum, - skb_checksum(skb, len, delta, 0)); + skb->csum = csum_block_sub(skb->csum, + skb_checksum(skb, len, delta, 0), + len); } return __pskb_trim(skb, len); } diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 2496b12bf721..e39c284e2954 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -4972,12 +4972,14 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb, /* unicast address incl. temp addr */ list_for_each_entry(ifa, &idev->addr_list, if_list) { - if (++ip_idx < s_ip_idx) - continue; + if (ip_idx < s_ip_idx) + goto next; err = inet6_fill_ifaddr(skb, ifa, fillargs); if (err < 0) break; nl_dump_check_consistent(cb, nlmsg_hdr(skb)); +next: + ip_idx++; } break; } |