|
@@ -450,6 +450,10 @@ static void pppol2tp_session_close(struct l2tp_session *session)
|
|
|
static void pppol2tp_session_destruct(struct sock *sk)
|
|
|
{
|
|
|
struct l2tp_session *session = sk->sk_user_data;
|
|
|
+
|
|
|
+ skb_queue_purge(&sk->sk_receive_queue);
|
|
|
+ skb_queue_purge(&sk->sk_write_queue);
|
|
|
+
|
|
|
if (session) {
|
|
|
sk->sk_user_data = NULL;
|
|
|
BUG_ON(session->magic != L2TP_SESSION_MAGIC);
|
|
@@ -488,9 +492,6 @@ static int pppol2tp_release(struct socket *sock)
|
|
|
l2tp_session_queue_purge(session);
|
|
|
sock_put(sk);
|
|
|
}
|
|
|
- skb_queue_purge(&sk->sk_receive_queue);
|
|
|
- skb_queue_purge(&sk->sk_write_queue);
|
|
|
-
|
|
|
release_sock(sk);
|
|
|
|
|
|
/* This will delete the session context via
|