Lines Matching refs:x6spi
77 struct xfrm6_tunnel_spi *x6spi; in __xfrm6_tunnel_spi_lookup() local
79 hlist_for_each_entry_rcu(x6spi, in __xfrm6_tunnel_spi_lookup()
82 if (xfrm6_addr_equal(&x6spi->addr, saddr)) in __xfrm6_tunnel_spi_lookup()
83 return x6spi; in __xfrm6_tunnel_spi_lookup()
91 struct xfrm6_tunnel_spi *x6spi; in xfrm6_tunnel_spi_lookup() local
95 x6spi = __xfrm6_tunnel_spi_lookup(net, saddr); in xfrm6_tunnel_spi_lookup()
96 spi = x6spi ? x6spi->spi : 0; in xfrm6_tunnel_spi_lookup()
105 struct xfrm6_tunnel_spi *x6spi; in __xfrm6_tunnel_spi_check() local
108 hlist_for_each_entry(x6spi, in __xfrm6_tunnel_spi_check()
111 if (x6spi->spi == spi) in __xfrm6_tunnel_spi_check()
121 struct xfrm6_tunnel_spi *x6spi; in __xfrm6_tunnel_alloc_spi() local
147 x6spi = kmem_cache_alloc(xfrm6_tunnel_spi_kmem, GFP_ATOMIC); in __xfrm6_tunnel_alloc_spi()
148 if (!x6spi) in __xfrm6_tunnel_alloc_spi()
151 memcpy(&x6spi->addr, saddr, sizeof(x6spi->addr)); in __xfrm6_tunnel_alloc_spi()
152 x6spi->spi = spi; in __xfrm6_tunnel_alloc_spi()
153 refcount_set(&x6spi->refcnt, 1); in __xfrm6_tunnel_alloc_spi()
155 hlist_add_head_rcu(&x6spi->list_byspi, &xfrm6_tn->spi_byspi[index]); in __xfrm6_tunnel_alloc_spi()
158 hlist_add_head_rcu(&x6spi->list_byaddr, &xfrm6_tn->spi_byaddr[index]); in __xfrm6_tunnel_alloc_spi()
165 struct xfrm6_tunnel_spi *x6spi; in xfrm6_tunnel_alloc_spi() local
169 x6spi = __xfrm6_tunnel_spi_lookup(net, saddr); in xfrm6_tunnel_alloc_spi()
170 if (x6spi) { in xfrm6_tunnel_alloc_spi()
171 refcount_inc(&x6spi->refcnt); in xfrm6_tunnel_alloc_spi()
172 spi = x6spi->spi; in xfrm6_tunnel_alloc_spi()
190 struct xfrm6_tunnel_spi *x6spi; in xfrm6_tunnel_free_spi() local
195 hlist_for_each_entry_safe(x6spi, n, in xfrm6_tunnel_free_spi()
199 if (xfrm6_addr_equal(&x6spi->addr, saddr)) { in xfrm6_tunnel_free_spi()
200 if (refcount_dec_and_test(&x6spi->refcnt)) { in xfrm6_tunnel_free_spi()
201 hlist_del_rcu(&x6spi->list_byaddr); in xfrm6_tunnel_free_spi()
202 hlist_del_rcu(&x6spi->list_byspi); in xfrm6_tunnel_free_spi()
203 call_rcu(&x6spi->rcu_head, x6spi_destroy_rcu); in xfrm6_tunnel_free_spi()