Re: 2.6.39-rc: WARNING: at __ip_select_ident+0xd3/0xf0()
From: Alexander Beregalov <hidden>
Date: 2011-03-23 11:22:14
Also in:
lkml
Thanks Alexander for this bug report. Here is a patch to fix this issue (and other crash you mentioned in next mail)
Hi Eric, Thank you for the fix, have not it checked however. I did not know that the second problem (https://lkml.org/lkml/2011/3/23/38) had the same reason. I did not notice inetpeer_free_rcu() in its calltrace. Thanks for that.
quoted hunk ↗ jump to hunk
[PATCH] 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 <redacted> Signed-off-by: Eric Dumazet <redacted> --- net/ipv4/route.c | 2 -- 1 file changed, 2 deletions(-)diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 870b518..34921b0 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); } }