Lines Matching refs:xfrm_input_afinfo
44 static struct xfrm_input_afinfo const __rcu *xfrm_input_afinfo[AF_INET6 + 1]; variable
51 int xfrm_input_register_afinfo(const struct xfrm_input_afinfo *afinfo) in xfrm_input_register_afinfo()
55 if (WARN_ON(afinfo->family >= ARRAY_SIZE(xfrm_input_afinfo))) in xfrm_input_register_afinfo()
59 if (unlikely(xfrm_input_afinfo[afinfo->family] != NULL)) in xfrm_input_register_afinfo()
62 rcu_assign_pointer(xfrm_input_afinfo[afinfo->family], afinfo); in xfrm_input_register_afinfo()
68 int xfrm_input_unregister_afinfo(const struct xfrm_input_afinfo *afinfo) in xfrm_input_unregister_afinfo()
73 if (likely(xfrm_input_afinfo[afinfo->family] != NULL)) { in xfrm_input_unregister_afinfo()
74 if (unlikely(xfrm_input_afinfo[afinfo->family] != afinfo)) in xfrm_input_unregister_afinfo()
77 RCU_INIT_POINTER(xfrm_input_afinfo[afinfo->family], NULL); in xfrm_input_unregister_afinfo()
85 static const struct xfrm_input_afinfo *xfrm_input_get_afinfo(unsigned int family) in xfrm_input_get_afinfo()
87 const struct xfrm_input_afinfo *afinfo; in xfrm_input_get_afinfo()
89 if (WARN_ON_ONCE(family >= ARRAY_SIZE(xfrm_input_afinfo))) in xfrm_input_get_afinfo()
93 afinfo = rcu_dereference(xfrm_input_afinfo[family]); in xfrm_input_get_afinfo()
103 const struct xfrm_input_afinfo *afinfo = xfrm_input_get_afinfo(family); in xfrm_rcv_cb()