xfrm_input_afinfo 384 include/net/xfrm.h int xfrm_input_register_afinfo(const struct xfrm_input_afinfo *afinfo); xfrm_input_afinfo 385 include/net/xfrm.h int xfrm_input_unregister_afinfo(const struct xfrm_input_afinfo *afinfo); xfrm_input_afinfo 192 net/ipv4/xfrm4_protocol.c static const struct xfrm_input_afinfo xfrm4_input_afinfo = { xfrm_input_afinfo 166 net/ipv6/xfrm6_protocol.c static const struct xfrm_input_afinfo xfrm6_input_afinfo = { xfrm_input_afinfo 44 net/xfrm/xfrm_input.c static struct xfrm_input_afinfo const __rcu *xfrm_input_afinfo[AF_INET6 + 1]; xfrm_input_afinfo 51 net/xfrm/xfrm_input.c int xfrm_input_register_afinfo(const struct xfrm_input_afinfo *afinfo) xfrm_input_afinfo 55 net/xfrm/xfrm_input.c if (WARN_ON(afinfo->family >= ARRAY_SIZE(xfrm_input_afinfo))) xfrm_input_afinfo 59 net/xfrm/xfrm_input.c if (unlikely(xfrm_input_afinfo[afinfo->family] != NULL)) xfrm_input_afinfo 62 net/xfrm/xfrm_input.c rcu_assign_pointer(xfrm_input_afinfo[afinfo->family], afinfo); xfrm_input_afinfo 68 net/xfrm/xfrm_input.c int xfrm_input_unregister_afinfo(const struct xfrm_input_afinfo *afinfo) xfrm_input_afinfo 73 net/xfrm/xfrm_input.c if (likely(xfrm_input_afinfo[afinfo->family] != NULL)) { xfrm_input_afinfo 74 net/xfrm/xfrm_input.c if (unlikely(xfrm_input_afinfo[afinfo->family] != afinfo)) xfrm_input_afinfo 77 net/xfrm/xfrm_input.c RCU_INIT_POINTER(xfrm_input_afinfo[afinfo->family], NULL); xfrm_input_afinfo 85 net/xfrm/xfrm_input.c static const struct xfrm_input_afinfo *xfrm_input_get_afinfo(unsigned int family) xfrm_input_afinfo 87 net/xfrm/xfrm_input.c const struct xfrm_input_afinfo *afinfo; xfrm_input_afinfo 89 net/xfrm/xfrm_input.c if (WARN_ON_ONCE(family >= ARRAY_SIZE(xfrm_input_afinfo))) xfrm_input_afinfo 93 net/xfrm/xfrm_input.c afinfo = rcu_dereference(xfrm_input_afinfo[family]); xfrm_input_afinfo 103 net/xfrm/xfrm_input.c const struct xfrm_input_afinfo *afinfo = xfrm_input_get_afinfo(family);