--- x/net/core/sock.c +++ y/net/core/sock.c @@ -2298,6 +2298,11 @@ struct sock *sk_clone_lock(const struct newsk = NULL; goto out; } + if (sk_user_data_is_nocopy(newsk)) { + sk_free_unlock_clone(newsk); + newsk = NULL; + goto out; + } /* Clear sk_user_data if parent had the pointer tagged * as not suitable for copying when cloning.