Lines Matching defs:x6spi
91 struct xfrm6_tunnel_spi *x6spi;
94 hlist_for_each_entry_rcu(x6spi, pos,
97 if (memcmp(&x6spi->addr, saddr, sizeof(x6spi->addr)) == 0)
98 return x6spi;
106 struct xfrm6_tunnel_spi *x6spi;
110 x6spi = __xfrm6_tunnel_spi_lookup(net, saddr);
111 spi = x6spi ? x6spi->spi : 0;
121 struct xfrm6_tunnel_spi *x6spi;
125 hlist_for_each_entry(x6spi, pos,
128 if (x6spi->spi == spi)
138 struct xfrm6_tunnel_spi *x6spi;
161 x6spi = kmem_cache_alloc(xfrm6_tunnel_spi_kmem, GFP_ATOMIC);
162 if (!x6spi)
165 memcpy(&x6spi->addr, saddr, sizeof(x6spi->addr));
166 x6spi->spi = spi;
167 atomic_set(&x6spi->refcnt, 1);
169 hlist_add_head_rcu(&x6spi->list_byspi, &xfrm6_tn->spi_byspi[index]);
172 hlist_add_head_rcu(&x6spi->list_byaddr, &xfrm6_tn->spi_byaddr[index]);
179 struct xfrm6_tunnel_spi *x6spi;
183 x6spi = __xfrm6_tunnel_spi_lookup(net, saddr);
184 if (x6spi) {
185 atomic_inc(&x6spi->refcnt);
186 spi = x6spi->spi;
205 struct xfrm6_tunnel_spi *x6spi;
210 hlist_for_each_entry_safe(x6spi, pos, n,
214 if (memcmp(&x6spi->addr, saddr, sizeof(x6spi->addr)) == 0) {
215 if (atomic_dec_and_test(&x6spi->refcnt)) {
216 hlist_del_rcu(&x6spi->list_byaddr);
217 hlist_del_rcu(&x6spi->list_byspi);
218 call_rcu(&x6spi->rcu_head, x6spi_destroy_rcu);