Lines Matching refs:prot

1336 static struct sock *sk_prot_alloc(struct proto *prot, gfp_t priority,  in sk_prot_alloc()  argument
1342 slab = prot->slab; in sk_prot_alloc()
1348 if (prot->clear_sk) in sk_prot_alloc()
1349 prot->clear_sk(sk, prot->obj_size); in sk_prot_alloc()
1351 sk_prot_clear_nulls(sk, prot->obj_size); in sk_prot_alloc()
1354 sk = kmalloc(prot->obj_size, priority); in sk_prot_alloc()
1362 if (!try_module_get(prot->owner)) in sk_prot_alloc()
1379 static void sk_prot_free(struct proto *prot, struct sock *sk) in sk_prot_free() argument
1384 owner = prot->owner; in sk_prot_free()
1385 slab = prot->slab; in sk_prot_free()
1415 struct proto *prot, int kern) in sk_alloc() argument
1419 sk = sk_prot_alloc(prot, priority | __GFP_ZERO, family); in sk_alloc()
1426 sk->sk_prot = sk->sk_prot_creator = prot; in sk_alloc()
2069 struct proto *prot = sk->sk_prot; in __sk_mem_schedule() local
2097 if (atomic_read(&sk->sk_rmem_alloc) < prot->sysctl_rmem[0]) in __sk_mem_schedule()
2102 if (sk->sk_wmem_queued < prot->sysctl_wmem[0]) in __sk_mem_schedule()
2105 prot->sysctl_wmem[0]) in __sk_mem_schedule()
2134 trace_sock_exceed_buf_limit(sk, prot, allocated); in __sk_mem_schedule()
2711 void sock_prot_inuse_add(struct net *net, struct proto *prot, int val) in sock_prot_inuse_add() argument
2713 __this_cpu_add(net->core.inuse->val[prot->inuse_idx], val); in sock_prot_inuse_add()
2717 int sock_prot_inuse_get(struct net *net, struct proto *prot) in sock_prot_inuse_get() argument
2719 int cpu, idx = prot->inuse_idx; in sock_prot_inuse_get()
2757 void sock_prot_inuse_add(struct net *net, struct proto *prot, int val) in sock_prot_inuse_add() argument
2759 __this_cpu_add(prot_inuse.val[prot->inuse_idx], val); in sock_prot_inuse_add()
2763 int sock_prot_inuse_get(struct net *net, struct proto *prot) in sock_prot_inuse_get() argument
2765 int cpu, idx = prot->inuse_idx; in sock_prot_inuse_get()
2776 static void assign_proto_idx(struct proto *prot) in assign_proto_idx() argument
2778 prot->inuse_idx = find_first_zero_bit(proto_inuse_idx, PROTO_INUSE_NR); in assign_proto_idx()
2780 if (unlikely(prot->inuse_idx == PROTO_INUSE_NR - 1)) { in assign_proto_idx()
2785 set_bit(prot->inuse_idx, proto_inuse_idx); in assign_proto_idx()
2788 static void release_proto_idx(struct proto *prot) in release_proto_idx() argument
2790 if (prot->inuse_idx != PROTO_INUSE_NR - 1) in release_proto_idx()
2791 clear_bit(prot->inuse_idx, proto_inuse_idx); in release_proto_idx()
2794 static inline void assign_proto_idx(struct proto *prot) in assign_proto_idx() argument
2798 static inline void release_proto_idx(struct proto *prot) in release_proto_idx() argument
2813 static int req_prot_init(const struct proto *prot) in req_prot_init() argument
2815 struct request_sock_ops *rsk_prot = prot->rsk_prot; in req_prot_init()
2821 prot->name); in req_prot_init()
2827 prot->slab_flags, NULL); in req_prot_init()
2831 prot->name); in req_prot_init()
2837 int proto_register(struct proto *prot, int alloc_slab) in proto_register() argument
2840 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0, in proto_register()
2841 SLAB_HWCACHE_ALIGN | prot->slab_flags, in proto_register()
2844 if (prot->slab == NULL) { in proto_register()
2846 prot->name); in proto_register()
2850 if (req_prot_init(prot)) in proto_register()
2853 if (prot->twsk_prot != NULL) { in proto_register()
2854 prot->twsk_prot->twsk_slab_name = kasprintf(GFP_KERNEL, "tw_sock_%s", prot->name); in proto_register()
2856 if (prot->twsk_prot->twsk_slab_name == NULL) in proto_register()
2859 prot->twsk_prot->twsk_slab = in proto_register()
2860 kmem_cache_create(prot->twsk_prot->twsk_slab_name, in proto_register()
2861 prot->twsk_prot->twsk_obj_size, in proto_register()
2863 prot->slab_flags, in proto_register()
2865 if (prot->twsk_prot->twsk_slab == NULL) in proto_register()
2871 list_add(&prot->node, &proto_list); in proto_register()
2872 assign_proto_idx(prot); in proto_register()
2877 kfree(prot->twsk_prot->twsk_slab_name); in proto_register()
2879 req_prot_cleanup(prot->rsk_prot); in proto_register()
2881 kmem_cache_destroy(prot->slab); in proto_register()
2882 prot->slab = NULL; in proto_register()
2888 void proto_unregister(struct proto *prot) in proto_unregister() argument
2891 release_proto_idx(prot); in proto_unregister()
2892 list_del(&prot->node); in proto_unregister()
2895 kmem_cache_destroy(prot->slab); in proto_unregister()
2896 prot->slab = NULL; in proto_unregister()
2898 req_prot_cleanup(prot->rsk_prot); in proto_unregister()
2900 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) { in proto_unregister()
2901 kmem_cache_destroy(prot->twsk_prot->twsk_slab); in proto_unregister()
2902 kfree(prot->twsk_prot->twsk_slab_name); in proto_unregister()
2903 prot->twsk_prot->twsk_slab = NULL; in proto_unregister()