From: YOSHIFUJI Hideaki / 吉藤英明 Date: Mon, 21 Jan 2013 09:58:50 +0000 (+0000) Subject: ndisc: Do not try to update "updated" time if neighbour has already gone. X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b820bb6b996966d93a5442b5fbf803ea58e7f487;p=openwrt%2Fstaging%2Fblogic.git ndisc: Do not try to update "updated" time if neighbour has already gone. Commit 2152caea ("ipv6: Do not depend on rt->n in rt6_probe().") introduce a bug to try to update "updated" time in neighbour structure. Update the "updated" time only if neighbour is available. Bug was found by Dan Carpenter Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller --- diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 2d94d5a7a051..f3328bc1174f 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -492,10 +492,10 @@ static void rt6_probe(struct rt6_info *rt) struct in6_addr mcaddr; struct in6_addr *target; - neigh->updated = jiffies; - - if (neigh) + if (neigh) { + neigh->updated = jiffies; write_unlock(&neigh->lock); + } target = (struct in6_addr *)&rt->rt6i_gateway; addrconf_addr_solict_mult(target, &mcaddr);