/* sk_alloc - All socket objects are allocated here @net: the applicable net namespace @family: protocol family @priority: for allocation (GFP_KERNEL, GFP_ATOMIC, etc) @prot: struct proto associated with this new sock instance  */
struct sock* sk_alloc(struct net *net, int family, gfp_t priority, struct proto *prot)
/* sk_alloc - All socket objects are allocated here @net: the applicable net namespace @family: protocol family @priority: for allocation (GFP_KERNEL, GFP_ATOMIC, etc) @prot: struct proto associated with this new sock instance  */
struct sock* sk_alloc(struct net *net, int family, gfp_t priority, struct proto *prot)
{
	struct sock *sk;
	sk = sk_prot_alloc(prot, priority | __GFP_ZERO, family);
	if (sk) {
		sk->sk_family = family;
		sk->sk_prot = sk->sk_prot_creator = prot;
		sock_lock_init(sk);
		sock_net_set(sk, get_net(net));
		atomic_set(&sk->sk_wmem_alloc, 1);
	}
	return sk;
}