diff --git a/net/core/sock.c b/net/core/sock.c
index f49481757fcc4ae96c94fdfcb3e829b467050909..e0939d86fe8ec5b2d0e130382ffd4b8b4e9c4a7a 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1466,6 +1466,8 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
 
 		sock_copy(newsk, sk);
 
+		newsk->sk_prot_creator = sk->sk_prot;
+
 		/* SANITY */
 		get_net(sock_net(newsk));
 		sk_node_init(&newsk->sk_node);