Lines Matching +refs:link +refs:stats +refs:attrs
392 struct rtnl_link *link, *old; in rtnl_register_internal() local
413 link = kmemdup(old, sizeof(*old), GFP_KERNEL); in rtnl_register_internal()
414 if (!link) in rtnl_register_internal()
417 link = kzalloc(sizeof(*link), GFP_KERNEL); in rtnl_register_internal()
418 if (!link) in rtnl_register_internal()
422 WARN_ON(link->owner && link->owner != owner); in rtnl_register_internal()
423 link->owner = owner; in rtnl_register_internal()
425 WARN_ON(doit && link->doit && link->doit != doit); in rtnl_register_internal()
427 link->doit = doit; in rtnl_register_internal()
428 WARN_ON(dumpit && link->dumpit && link->dumpit != dumpit); in rtnl_register_internal()
430 link->dumpit = dumpit; in rtnl_register_internal()
434 link->flags |= flags; in rtnl_register_internal()
437 rcu_assign_pointer(tab[msgindex], link); in rtnl_register_internal()
456 struct rtnl_link *link; in rtnl_unregister() local
469 link = rcu_replace_pointer_rtnl(tab[msgindex], NULL); in rtnl_unregister()
472 kfree_rcu(link, rcu); in rtnl_unregister()
487 struct rtnl_link *link; in rtnl_unregister_all() local
499 link = rcu_replace_pointer_rtnl(tab[msgindex], NULL); in rtnl_unregister_all()
500 kfree_rcu(link, rcu); in rtnl_unregister_all()
2524 const struct nlattr *attrs; in rtnl_nla_parse_ifinfomsg() local
2528 attrs = nla_data(nla_peer) + sizeof(struct ifinfomsg); in rtnl_nla_parse_ifinfomsg()
2537 return nla_parse_deprecated(tb, IFLA_MAX, attrs, len, ifla_policy, in rtnl_nla_parse_ifinfomsg()
4354 struct rtnl_link *link; in rtnl_dump_all() local
4367 link = rcu_dereference_rtnl(tab[type]); in rtnl_dump_all()
4368 if (!link) in rtnl_dump_all()
4371 dumpit = link->dumpit; in rtnl_dump_all()
5703 struct rtnl_hw_stats64 *stats, in rtnl_offload_xstats_get_stats() argument
5716 err = netdev_offload_xstats_get(dev, type, stats, &used, extack); in rtnl_offload_xstats_get_stats()
6860 struct rtnl_link *link; in rtnetlink_rcv_msg() local
6891 link = rtnl_get_link(family, type); in rtnetlink_rcv_msg()
6892 if (!link || !link->dumpit) { in rtnetlink_rcv_msg()
6894 link = rtnl_get_link(family, type); in rtnetlink_rcv_msg()
6895 if (!link || !link->dumpit) in rtnetlink_rcv_msg()
6898 owner = link->owner; in rtnetlink_rcv_msg()
6899 dumpit = link->dumpit; in rtnetlink_rcv_msg()
6900 flags = link->flags; in rtnetlink_rcv_msg()
6929 link = rtnl_get_link(family, type); in rtnetlink_rcv_msg()
6930 if (!link || !link->doit) { in rtnetlink_rcv_msg()
6932 link = rtnl_get_link(PF_UNSPEC, type); in rtnetlink_rcv_msg()
6933 if (!link || !link->doit) in rtnetlink_rcv_msg()
6937 owner = link->owner; in rtnetlink_rcv_msg()
6943 flags = link->flags; in rtnetlink_rcv_msg()
6952 doit = link->doit; in rtnetlink_rcv_msg()
6962 link = rtnl_get_link(family, type); in rtnetlink_rcv_msg()
6963 if (link && link->doit) in rtnetlink_rcv_msg()
6964 err = link->doit(skb, nlh, extack); in rtnetlink_rcv_msg()