diff --git a/net/core/sock.c b/net/core/sock.c
index 5a087626bb3a31f8d2f5deac1d27d685b74cc9cd..4ed7b1d12f5ecde5b8c2119c0d4cfaaa765ff470 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1257,6 +1257,7 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority)
 			/* It is still raw copy of parent, so invalidate
 			 * destructor and make plain sk_free() */
 			newsk->sk_destruct = NULL;
+			bh_unlock_sock(newsk);
 			sk_free(newsk);
 			newsk = NULL;
 			goto out;