diff options
-rw-r--r-- | net/core/sock.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 4f4708a6ff8..6046fc69428 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; |