Lines Matching refs:prot
1319 static struct sock *sk_prot_alloc(struct proto *prot, gfp_t priority, in sk_prot_alloc() argument
1325 slab = prot->slab; in sk_prot_alloc()
1331 if (prot->clear_sk) in sk_prot_alloc()
1332 prot->clear_sk(sk, prot->obj_size); in sk_prot_alloc()
1334 sk_prot_clear_nulls(sk, prot->obj_size); in sk_prot_alloc()
1337 sk = kmalloc(prot->obj_size, priority); in sk_prot_alloc()
1345 if (!try_module_get(prot->owner)) in sk_prot_alloc()
1362 static void sk_prot_free(struct proto *prot, struct sock *sk) in sk_prot_free() argument
1367 owner = prot->owner; in sk_prot_free()
1368 slab = prot->slab; in sk_prot_free()
1397 struct proto *prot) in sk_alloc() argument
1401 sk = sk_prot_alloc(prot, priority | __GFP_ZERO, family); in sk_alloc()
1408 sk->sk_prot = sk->sk_prot_creator = prot; in sk_alloc()
2003 struct proto *prot = sk->sk_prot; in __sk_mem_schedule() local
2031 if (atomic_read(&sk->sk_rmem_alloc) < prot->sysctl_rmem[0]) in __sk_mem_schedule()
2036 if (sk->sk_wmem_queued < prot->sysctl_wmem[0]) in __sk_mem_schedule()
2039 prot->sysctl_wmem[0]) in __sk_mem_schedule()
2068 trace_sock_exceed_buf_limit(sk, prot, allocated); in __sk_mem_schedule()
2644 void sock_prot_inuse_add(struct net *net, struct proto *prot, int val) in sock_prot_inuse_add() argument
2646 __this_cpu_add(net->core.inuse->val[prot->inuse_idx], val); in sock_prot_inuse_add()
2650 int sock_prot_inuse_get(struct net *net, struct proto *prot) in sock_prot_inuse_get() argument
2652 int cpu, idx = prot->inuse_idx; in sock_prot_inuse_get()
2690 void sock_prot_inuse_add(struct net *net, struct proto *prot, int val) in sock_prot_inuse_add() argument
2692 __this_cpu_add(prot_inuse.val[prot->inuse_idx], val); in sock_prot_inuse_add()
2696 int sock_prot_inuse_get(struct net *net, struct proto *prot) in sock_prot_inuse_get() argument
2698 int cpu, idx = prot->inuse_idx; in sock_prot_inuse_get()
2709 static void assign_proto_idx(struct proto *prot) in assign_proto_idx() argument
2711 prot->inuse_idx = find_first_zero_bit(proto_inuse_idx, PROTO_INUSE_NR); in assign_proto_idx()
2713 if (unlikely(prot->inuse_idx == PROTO_INUSE_NR - 1)) { in assign_proto_idx()
2718 set_bit(prot->inuse_idx, proto_inuse_idx); in assign_proto_idx()
2721 static void release_proto_idx(struct proto *prot) in release_proto_idx() argument
2723 if (prot->inuse_idx != PROTO_INUSE_NR - 1) in release_proto_idx()
2724 clear_bit(prot->inuse_idx, proto_inuse_idx); in release_proto_idx()
2727 static inline void assign_proto_idx(struct proto *prot) in assign_proto_idx() argument
2731 static inline void release_proto_idx(struct proto *prot) in release_proto_idx() argument
2748 static int req_prot_init(const struct proto *prot) in req_prot_init() argument
2750 struct request_sock_ops *rsk_prot = prot->rsk_prot; in req_prot_init()
2756 prot->name); in req_prot_init()
2766 prot->name); in req_prot_init()
2772 int proto_register(struct proto *prot, int alloc_slab) in proto_register() argument
2775 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0, in proto_register()
2776 SLAB_HWCACHE_ALIGN | prot->slab_flags, in proto_register()
2779 if (prot->slab == NULL) { in proto_register()
2781 prot->name); in proto_register()
2785 if (req_prot_init(prot)) in proto_register()
2788 if (prot->twsk_prot != NULL) { in proto_register()
2789 prot->twsk_prot->twsk_slab_name = kasprintf(GFP_KERNEL, "tw_sock_%s", prot->name); in proto_register()
2791 if (prot->twsk_prot->twsk_slab_name == NULL) in proto_register()
2794 prot->twsk_prot->twsk_slab = in proto_register()
2795 kmem_cache_create(prot->twsk_prot->twsk_slab_name, in proto_register()
2796 prot->twsk_prot->twsk_obj_size, in proto_register()
2798 prot->slab_flags, in proto_register()
2800 if (prot->twsk_prot->twsk_slab == NULL) in proto_register()
2806 list_add(&prot->node, &proto_list); in proto_register()
2807 assign_proto_idx(prot); in proto_register()
2812 kfree(prot->twsk_prot->twsk_slab_name); in proto_register()
2814 req_prot_cleanup(prot->rsk_prot); in proto_register()
2816 kmem_cache_destroy(prot->slab); in proto_register()
2817 prot->slab = NULL; in proto_register()
2823 void proto_unregister(struct proto *prot) in proto_unregister() argument
2826 release_proto_idx(prot); in proto_unregister()
2827 list_del(&prot->node); in proto_unregister()
2830 if (prot->slab != NULL) { in proto_unregister()
2831 kmem_cache_destroy(prot->slab); in proto_unregister()
2832 prot->slab = NULL; in proto_unregister()
2835 req_prot_cleanup(prot->rsk_prot); in proto_unregister()
2837 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) { in proto_unregister()
2838 kmem_cache_destroy(prot->twsk_prot->twsk_slab); in proto_unregister()
2839 kfree(prot->twsk_prot->twsk_slab_name); in proto_unregister()
2840 prot->twsk_prot->twsk_slab = NULL; in proto_unregister()