diff --git a/net/core/sock.c b/net/core/sock.c index 4f4708a6ff8fb1aa5c9cc8b6ba2e638ebb944191..6046fc69428b0db3da2058ce1bde63511c90b7df 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -931,21 +931,16 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority, { struct sock *sk; - if (zero_it) - priority |= __GFP_ZERO; - - sk = sk_prot_alloc(prot, priority, family); + sk = sk_prot_alloc(prot, priority | __GFP_ZERO, family); if (sk) { - if (zero_it) { - sk->sk_family = family; - /* - * See comment in struct sock definition to understand - * why we need sk_prot_creator -acme - */ - sk->sk_prot = sk->sk_prot_creator = prot; - sock_lock_init(sk); - sk->sk_net = get_net(net); - } + sk->sk_family = family; + /* + * See comment in struct sock definition to understand + * why we need sk_prot_creator -acme + */ + sk->sk_prot = sk->sk_prot_creator = prot; + sock_lock_init(sk); + sk->sk_net = get_net(net); } return sk;