[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1320256701.2292.19.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>
Date: Wed, 02 Nov 2011 18:58:21 +0100
From: Eric Dumazet <eric.dumazet@...il.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Simon Kirby <sim@...tway.ca>, David Miller <davem@...emloft.net>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Dave Jones <davej@...hat.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
Ingo Molnar <mingo@...e.hu>,
Network Development <netdev@...r.kernel.org>
Subject: Re: Linux 3.1-rc9
Le mercredi 02 novembre 2011 à 18:49 +0100, Eric Dumazet a écrit :
> Le mercredi 02 novembre 2011 à 18:27 +0100, Eric Dumazet a écrit :
>
> > I believe it might come from commit 0e734419
> > (ipv4: Use inet_csk_route_child_sock() in DCCP and TCP.)
> >
> > In case inet_csk_route_child_sock() returns NULL, we dont release socket
> > lock.
> >
> >
>
> Yes, thats the problem. I am testing following patch :
>
> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
> index 0ea10ee..683d97a 100644
> --- a/net/ipv4/tcp_ipv4.c
> +++ b/net/ipv4/tcp_ipv4.c
> @@ -1510,6 +1510,7 @@ exit:
> NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS);
> return NULL;
> put_and_exit:
> + bh_unlock_sock(newsk);
> sock_put(newsk);
> goto exit;
> }
>
This indeed solves the problem, but more closer inspection is needed to
close all bugs, not this only one.
# netstat -s
Ip:
6961157 total packets received
0 forwarded
0 incoming packets discarded
6961157 incoming packets delivered
6961049 requests sent out
2 dropped because of missing route //// HERE, this is the origin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists