--- x/net/l2tp/l2tp_core.c +++ y/net/l2tp/l2tp_core.c @@ -1460,6 +1460,7 @@ int l2tp_tunnel_register(struct l2tp_tun struct socket *sock; struct sock *sk; int ret; + int lookup = 0; if (tunnel->fd < 0) { ret = l2tp_tunnel_sock_create(net, tunnel->tunnel_id, @@ -1471,6 +1472,7 @@ int l2tp_tunnel_register(struct l2tp_tun sock = sockfd_lookup(tunnel->fd, &ret); if (!sock) goto err; + lookup = 1; } sk = sock->sk; @@ -1512,8 +1514,8 @@ int l2tp_tunnel_register(struct l2tp_tun tunnel->old_sk_destruct = sk->sk_destruct; sk->sk_destruct = &l2tp_tunnel_destruct; - lockdep_set_class_and_name(&sk->sk_lock.slock, &l2tp_socket_class, - "l2tp_sock"); + if (!lookup) + lockdep_set_class_and_name(&sk->sk_lock.slock, &l2tp_socket_class, "l2tp_sock"); sk->sk_allocation = GFP_ATOMIC; trace_register_tunnel(tunnel);