Lines Matching refs:x6spi
90 struct xfrm6_tunnel_spi *x6spi; in __xfrm6_tunnel_spi_lookup() local
92 hlist_for_each_entry_rcu(x6spi, in __xfrm6_tunnel_spi_lookup()
95 if (xfrm6_addr_equal(&x6spi->addr, saddr)) in __xfrm6_tunnel_spi_lookup()
96 return x6spi; in __xfrm6_tunnel_spi_lookup()
104 struct xfrm6_tunnel_spi *x6spi; in xfrm6_tunnel_spi_lookup() local
108 x6spi = __xfrm6_tunnel_spi_lookup(net, saddr); in xfrm6_tunnel_spi_lookup()
109 spi = x6spi ? x6spi->spi : 0; in xfrm6_tunnel_spi_lookup()
118 struct xfrm6_tunnel_spi *x6spi; in __xfrm6_tunnel_spi_check() local
121 hlist_for_each_entry(x6spi, in __xfrm6_tunnel_spi_check()
124 if (x6spi->spi == spi) in __xfrm6_tunnel_spi_check()
134 struct xfrm6_tunnel_spi *x6spi; in __xfrm6_tunnel_alloc_spi() local
157 x6spi = kmem_cache_alloc(xfrm6_tunnel_spi_kmem, GFP_ATOMIC); in __xfrm6_tunnel_alloc_spi()
158 if (!x6spi) in __xfrm6_tunnel_alloc_spi()
161 memcpy(&x6spi->addr, saddr, sizeof(x6spi->addr)); in __xfrm6_tunnel_alloc_spi()
162 x6spi->spi = spi; in __xfrm6_tunnel_alloc_spi()
163 atomic_set(&x6spi->refcnt, 1); in __xfrm6_tunnel_alloc_spi()
165 hlist_add_head_rcu(&x6spi->list_byspi, &xfrm6_tn->spi_byspi[index]); in __xfrm6_tunnel_alloc_spi()
168 hlist_add_head_rcu(&x6spi->list_byaddr, &xfrm6_tn->spi_byaddr[index]); in __xfrm6_tunnel_alloc_spi()
175 struct xfrm6_tunnel_spi *x6spi; in xfrm6_tunnel_alloc_spi() local
179 x6spi = __xfrm6_tunnel_spi_lookup(net, saddr); in xfrm6_tunnel_alloc_spi()
180 if (x6spi) { in xfrm6_tunnel_alloc_spi()
181 atomic_inc(&x6spi->refcnt); in xfrm6_tunnel_alloc_spi()
182 spi = x6spi->spi; in xfrm6_tunnel_alloc_spi()
200 struct xfrm6_tunnel_spi *x6spi; in xfrm6_tunnel_free_spi() local
205 hlist_for_each_entry_safe(x6spi, n, in xfrm6_tunnel_free_spi()
209 if (xfrm6_addr_equal(&x6spi->addr, saddr)) { in xfrm6_tunnel_free_spi()
210 if (atomic_dec_and_test(&x6spi->refcnt)) { in xfrm6_tunnel_free_spi()
211 hlist_del_rcu(&x6spi->list_byaddr); in xfrm6_tunnel_free_spi()
212 hlist_del_rcu(&x6spi->list_byspi); in xfrm6_tunnel_free_spi()
213 call_rcu(&x6spi->rcu_head, x6spi_destroy_rcu); in xfrm6_tunnel_free_spi()