Lines Matching refs:pcpu_rt
1363 struct rt6_info *pcpu_rt;
1370 pcpu_rt = ip6_dst_alloc(dev_net(dev), dev, flags | DST_NOCOUNT);
1372 if (!pcpu_rt) {
1376 ip6_rt_copy_init(pcpu_rt, res);
1377 pcpu_rt->rt6i_flags |= RTF_PCPU;
1380 pcpu_rt->sernum = rt_genid_ipv6(dev_net(dev));
1382 return pcpu_rt;
1393 struct rt6_info *pcpu_rt;
1395 pcpu_rt = this_cpu_read(*res->nh->rt6i_pcpu);
1397 if (pcpu_rt && pcpu_rt->sernum && !rt6_is_valid(pcpu_rt)) {
1408 pcpu_rt = NULL;
1411 return pcpu_rt;
1417 struct rt6_info *pcpu_rt, *prev, **p;
1419 pcpu_rt = ip6_rt_pcpu_alloc(res);
1420 if (!pcpu_rt)
1424 prev = cmpxchg(p, NULL, pcpu_rt);
1430 from = xchg((__force struct fib6_info **)&pcpu_rt->from, NULL);
1434 return pcpu_rt;
3558 struct rt6_info *pcpu_rt;
3561 pcpu_rt = *ppcpu_rt;
3562 if (pcpu_rt) {
3563 dst_dev_put(&pcpu_rt->dst);
3564 dst_release(&pcpu_rt->dst);
3583 struct rt6_info *pcpu_rt, **ppcpu_rt;
3586 pcpu_rt = xchg(ppcpu_rt, NULL);
3587 if (pcpu_rt) {
3588 dst_dev_put(&pcpu_rt->dst);
3589 dst_release(&pcpu_rt->dst);