Lines Matching refs:idst
129 static void ip6_tnl_per_cpu_dst_set(struct ip6_tnl_dst *idst, in ip6_tnl_per_cpu_dst_set() argument
132 write_seqlock_bh(&idst->lock); in ip6_tnl_per_cpu_dst_set()
134 idst->dst, in ip6_tnl_per_cpu_dst_set()
135 lockdep_is_held(&idst->lock.lock))); in ip6_tnl_per_cpu_dst_set()
138 idst->cookie = rt6_get_cookie((struct rt6_info *)dst); in ip6_tnl_per_cpu_dst_set()
140 idst->cookie = 0; in ip6_tnl_per_cpu_dst_set()
142 rcu_assign_pointer(idst->dst, dst); in ip6_tnl_per_cpu_dst_set()
143 write_sequnlock_bh(&idst->lock); in ip6_tnl_per_cpu_dst_set()
148 struct ip6_tnl_dst *idst; in ip6_tnl_dst_get() local
153 idst = raw_cpu_ptr(t->dst_cache); in ip6_tnl_dst_get()
157 seq = read_seqbegin(&idst->lock); in ip6_tnl_dst_get()
158 dst = rcu_dereference(idst->dst); in ip6_tnl_dst_get()
159 cookie = idst->cookie; in ip6_tnl_dst_get()
160 } while (read_seqretry(&idst->lock, seq)); in ip6_tnl_dst_get()
167 ip6_tnl_per_cpu_dst_set(idst, NULL); in ip6_tnl_dst_get()