From: Eric Dumazet Date: Wed, 23 Mar 2011 19:18:15 +0000 (-0700) Subject: ipv4: fix ip_rt_update_pmtu() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=eb49a97363f020c1d7eef8bcd93865726b1fa11d;p=openwrt%2Fstaging%2Fblogic.git ipv4: fix ip_rt_update_pmtu() commit 2c8cec5c10bc (Cache learned PMTU information in inetpeer) added an extra inet_putpeer() call in ip_rt_update_pmtu(). This results in various problems, since we can free one inetpeer, while it is still in use. Ref: http://www.spinics.net/lists/netdev/msg159121.html Reported-by: Alexander Beregalov Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 870b5182ddd8..34921b0d3f8e 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1593,8 +1593,6 @@ static void ip_rt_update_pmtu(struct dst_entry *dst, u32 mtu) rt->rt_peer_genid = rt_peer_genid(); } check_peer_pmtu(dst, peer); - - inet_putpeer(peer); } }