diff --git a/net/x25/x25_subr.c b/net/x25/x25_subr.c index 743103786652d71824a7f43d64799826f361d8c6..d34a874177d570fdab40a5f6ac914c6ad011de27 100644 --- a/net/x25/x25_subr.c +++ b/net/x25/x25_subr.c @@ -362,6 +362,10 @@ void x25_disconnect(struct sock *sk, int reason, unsigned char cause, sk->sk_state_change(sk); sock_set_flag(sk, SOCK_DEAD); } + read_lock_bh(&x25_list_lock); + x25_neigh_put(x25->neighbour); + x25->neighbour = NULL; + read_unlock_bh(&x25_list_lock); } /*