From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Wed, 23 Mar 2011 19:18:15 +0000 (-0700)
Subject: ipv4: fix ip_rt_update_pmtu()
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=eb49a97363f020c1d7eef8bcd93865726b1fa11d;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.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 <a.beregalov@gmail.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

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);
 	}
 }