X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=net%2Fl2tp%2Fl2tp_ip.c;h=571db8dd2292a7c5b1f2e940073edce370b13699;hb=39b2f8656e2af4d5d490ce6e33e4ba229cda3e33;hp=7f41b7051269539efa0780b618be0b60e7788e76;hpb=8cab24f0b1daf23ba042464f0d4a4e51695bed74;p=linux-2.6-microblaze.git diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c index 7f41b7051269..571db8dd2292 100644 --- a/net/l2tp/l2tp_ip.c +++ b/net/l2tp/l2tp_ip.c @@ -228,10 +228,16 @@ static void l2tp_ip_close(struct sock *sk, long timeout) static void l2tp_ip_destroy_sock(struct sock *sk) { struct sk_buff *skb; + struct l2tp_tunnel *tunnel = l2tp_sock_to_tunnel(sk); while ((skb = __skb_dequeue_tail(&sk->sk_write_queue)) != NULL) kfree_skb(skb); + if (tunnel) { + l2tp_tunnel_closeall(tunnel); + sock_put(sk); + } + sk_refcnt_debug_dec(sk); }