Re: Linux 3.1-rc9

From: Eric Dumazet
Date: Wed Nov 02 2011 - 13:58:28 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/