Lines Matching refs:err
533 int i, err; in __rtnl_register_many() local
536 err = rtnl_register_internal(handler->owner, handler->protocol, in __rtnl_register_many()
539 if (err) { in __rtnl_register_many()
549 return err; in __rtnl_register_many()
600 int err; in rtnl_link_register() local
615 err = init_srcu_struct(&ops->srcu); in rtnl_link_register()
616 if (err) in rtnl_link_register()
617 return err; in rtnl_link_register()
623 err = -EEXIST; in rtnl_link_register()
632 return err; in rtnl_link_register()
783 int err = init_srcu_struct(&ops->srcu); in rtnl_af_register() local
785 if (err) in rtnl_af_register()
786 return err; in rtnl_af_register()
854 int err; in rtnl_link_slave_info_fill() local
868 err = ops->fill_slave_info(skb, master_dev, dev); in rtnl_link_slave_info_fill()
869 if (err < 0) in rtnl_link_slave_info_fill()
877 return err; in rtnl_link_slave_info_fill()
885 int err; in rtnl_link_info_fill() local
892 err = ops->fill_xstats(skb, dev); in rtnl_link_info_fill()
893 if (err < 0) in rtnl_link_info_fill()
894 return err; in rtnl_link_info_fill()
900 err = ops->fill_info(skb, dev); in rtnl_link_info_fill()
901 if (err < 0) in rtnl_link_info_fill()
909 return err; in rtnl_link_info_fill()
915 int err = -EMSGSIZE; in rtnl_link_fill() local
921 err = rtnl_link_info_fill(skb, dev); in rtnl_link_fill()
922 if (err < 0) in rtnl_link_fill()
925 err = rtnl_link_slave_info_fill(skb, dev); in rtnl_link_fill()
926 if (err < 0) in rtnl_link_fill()
935 return err; in rtnl_link_fill()
1337 int err; in rtnl_vf_ports_fill() local
1349 err = dev->netdev_ops->ndo_get_vf_port(dev, vf, skb); in rtnl_vf_ports_fill()
1350 if (err == -EMSGSIZE) in rtnl_vf_ports_fill()
1352 if (err) { in rtnl_vf_ports_fill()
1371 int err; in rtnl_port_self_fill() local
1377 err = dev->netdev_ops->ndo_get_vf_port(dev, PORT_SELF_VF, skb); in rtnl_port_self_fill()
1378 if (err) { in rtnl_port_self_fill()
1380 return (err == -EMSGSIZE) ? err : 0; in rtnl_port_self_fill()
1391 int err; in rtnl_port_fill() local
1397 err = rtnl_port_self_fill(skb, dev); in rtnl_port_fill()
1398 if (err) in rtnl_port_fill()
1399 return err; in rtnl_port_fill()
1402 err = rtnl_vf_ports_fill(skb, dev); in rtnl_port_fill()
1403 if (err) in rtnl_port_fill()
1404 return err; in rtnl_port_fill()
1412 int err; in rtnl_phys_port_id_fill() local
1415 err = dev_get_phys_port_id(dev, &ppid); in rtnl_phys_port_id_fill()
1416 if (err) { in rtnl_phys_port_id_fill()
1417 if (err == -EOPNOTSUPP) in rtnl_phys_port_id_fill()
1419 return err; in rtnl_phys_port_id_fill()
1431 int err; in rtnl_phys_port_name_fill() local
1433 err = dev_get_phys_port_name(dev, name, sizeof(name)); in rtnl_phys_port_name_fill()
1434 if (err) { in rtnl_phys_port_name_fill()
1435 if (err == -EOPNOTSUPP) in rtnl_phys_port_name_fill()
1437 return err; in rtnl_phys_port_name_fill()
1449 int err; in rtnl_phys_switch_id_fill() local
1451 err = netif_get_port_parent_id(dev, &ppid, false); in rtnl_phys_switch_id_fill()
1452 if (err) { in rtnl_phys_switch_id_fill()
1453 if (err == -EOPNOTSUPP) in rtnl_phys_switch_id_fill()
1455 return err; in rtnl_phys_switch_id_fill()
1714 int err; in rtnl_xdp_report_one() local
1721 err = nla_put_u32(skb, attr, curr_id); in rtnl_xdp_report_one()
1722 if (err) in rtnl_xdp_report_one()
1723 return err; in rtnl_xdp_report_one()
1737 int err; in rtnl_xdp_fill() local
1746 err = rtnl_xdp_report_one(skb, dev, &prog_id, &mode, XDP_ATTACHED_SKB, in rtnl_xdp_fill()
1748 if (err) in rtnl_xdp_fill()
1750 err = rtnl_xdp_report_one(skb, dev, &prog_id, &mode, XDP_ATTACHED_DRV, in rtnl_xdp_fill()
1752 if (err) in rtnl_xdp_fill()
1754 err = rtnl_xdp_report_one(skb, dev, &prog_id, &mode, XDP_ATTACHED_HW, in rtnl_xdp_fill()
1756 if (err) in rtnl_xdp_fill()
1759 err = nla_put_u8(skb, IFLA_XDP_ATTACHED, mode); in rtnl_xdp_fill()
1760 if (err) in rtnl_xdp_fill()
1764 err = nla_put_u32(skb, IFLA_XDP_PROG_ID, prog_id); in rtnl_xdp_fill()
1765 if (err) in rtnl_xdp_fill()
1774 return err; in rtnl_xdp_fill()
1879 int err; in rtnl_fill_link_af() local
1888 err = af_ops->fill_link_af(skb, dev, ext_filter_mask); in rtnl_fill_link_af()
1895 if (err == -ENODATA) in rtnl_fill_link_af()
1897 else if (err < 0) in rtnl_fill_link_af()
2447 int err, i; in rtnl_dump_ifinfo() local
2449 err = rtnl_valid_dump_ifinfo_req(nlh, cb->strict_check, tb, extack); in rtnl_dump_ifinfo()
2450 if (err < 0) { in rtnl_dump_ifinfo()
2452 return err; in rtnl_dump_ifinfo()
2468 err = PTR_ERR(tgt_net); in rtnl_dump_ifinfo()
2485 err = -EINVAL; in rtnl_dump_ifinfo()
2495 err = 0; in rtnl_dump_ifinfo()
2499 err = rtnl_fill_ifinfo(skb, dev, net, RTM_NEWLINK, in rtnl_dump_ifinfo()
2504 if (err < 0) in rtnl_dump_ifinfo()
2519 return err; in rtnl_dump_ifinfo()
2702 int rem, err; in validate_linkmsg() local
2713 err = -EOPNOTSUPP; in validate_linkmsg()
2715 err = af_ops->validate_link_af(dev, af, extack); in validate_linkmsg()
2717 err = 0; in validate_linkmsg()
2721 if (err < 0) in validate_linkmsg()
2722 return err; in validate_linkmsg()
2748 int err = -EINVAL; in do_setvfinfo() local
2755 err = -EOPNOTSUPP; in do_setvfinfo()
2757 err = ops->ndo_set_vf_mac(dev, ivm->vf, in do_setvfinfo()
2759 if (err < 0) in do_setvfinfo()
2760 return err; in do_setvfinfo()
2768 err = -EOPNOTSUPP; in do_setvfinfo()
2770 err = ops->ndo_set_vf_vlan(dev, ivv->vf, ivv->vlan, in do_setvfinfo()
2773 if (err < 0) in do_setvfinfo()
2774 return err; in do_setvfinfo()
2782 err = -EOPNOTSUPP; in do_setvfinfo()
2784 return err; in do_setvfinfo()
2802 err = ops->ndo_set_vf_vlan(dev, ivvl[0]->vf, ivvl[0]->vlan, in do_setvfinfo()
2804 if (err < 0) in do_setvfinfo()
2805 return err; in do_setvfinfo()
2814 err = -EOPNOTSUPP; in do_setvfinfo()
2816 err = ops->ndo_get_vf_config(dev, ivt->vf, &ivf); in do_setvfinfo()
2817 if (err < 0) in do_setvfinfo()
2818 return err; in do_setvfinfo()
2820 err = rtnl_set_vf_rate(dev, ivt->vf, in do_setvfinfo()
2822 if (err < 0) in do_setvfinfo()
2823 return err; in do_setvfinfo()
2832 err = rtnl_set_vf_rate(dev, ivt->vf, in do_setvfinfo()
2834 if (err < 0) in do_setvfinfo()
2835 return err; in do_setvfinfo()
2843 err = -EOPNOTSUPP; in do_setvfinfo()
2845 err = ops->ndo_set_vf_spoofchk(dev, ivs->vf, in do_setvfinfo()
2847 if (err < 0) in do_setvfinfo()
2848 return err; in do_setvfinfo()
2856 err = -EOPNOTSUPP; in do_setvfinfo()
2858 err = ops->ndo_set_vf_link_state(dev, ivl->vf, in do_setvfinfo()
2860 if (err < 0) in do_setvfinfo()
2861 return err; in do_setvfinfo()
2867 err = -EOPNOTSUPP; in do_setvfinfo()
2872 err = ops->ndo_set_vf_rss_query_en(dev, ivrssq_en->vf, in do_setvfinfo()
2874 if (err < 0) in do_setvfinfo()
2875 return err; in do_setvfinfo()
2883 err = -EOPNOTSUPP; in do_setvfinfo()
2885 err = ops->ndo_set_vf_trust(dev, ivt->vf, ivt->setting); in do_setvfinfo()
2886 if (err < 0) in do_setvfinfo()
2887 return err; in do_setvfinfo()
2911 return err; in do_setvfinfo()
2919 int err; in do_set_master() local
2932 err = ops->ndo_del_slave(upper_dev, dev); in do_set_master()
2934 if (err) in do_set_master()
2935 return err; in do_set_master()
2948 err = ops->ndo_add_slave(upper_dev, dev, extack); in do_set_master()
2950 if (err) in do_set_master()
2951 return err; in do_set_master()
2973 int err; in do_set_proto_down() local
2981 err = nla_parse_nested_deprecated(pdreason, in do_set_proto_down()
2986 if (err < 0) in do_set_proto_down()
2987 return err; in do_set_proto_down()
3010 err = netif_change_proto_down(dev, proto_down); in do_set_proto_down()
3011 if (err) in do_set_proto_down()
3012 return err; in do_set_proto_down()
3028 int err; in do_setlink() local
3030 err = validate_linkmsg(dev, tb, extack); in do_setlink()
3031 if (err < 0) in do_setlink()
3032 return err; in do_setlink()
3045 err = __dev_change_net_namespace(dev, tgt_net, pat, in do_setlink()
3047 if (err) in do_setlink()
3048 return err; in do_setlink()
3060 err = -EOPNOTSUPP; in do_setlink()
3065 err = -ENODEV; in do_setlink()
3077 err = ops->ndo_set_config(dev, &k_map); in do_setlink()
3078 if (err < 0) in do_setlink()
3095 err = netif_set_mac_address(dev, &ss, extack); in do_setlink()
3096 if (err) { in do_setlink()
3106 err = netif_set_mtu_ext(dev, nla_get_u32(tb[IFLA_MTU]), extack); in do_setlink()
3107 if (err < 0) in do_setlink()
3123 err = netif_change_name(dev, ifname); in do_setlink()
3124 if (err < 0) in do_setlink()
3130 err = netif_set_alias(dev, nla_data(tb[IFLA_IFALIAS]), in do_setlink()
3132 if (err < 0) in do_setlink()
3143 err = netif_change_flags(dev, rtnl_dev_combine_flags(dev, ifm), in do_setlink()
3145 if (err < 0) in do_setlink()
3150 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); in do_setlink()
3151 if (err) in do_setlink()
3157 err = netif_change_carrier(dev, nla_get_u8(tb[IFLA_CARRIER])); in do_setlink()
3158 if (err) in do_setlink()
3166 err = netif_change_tx_queue_len(dev, value); in do_setlink()
3167 if (err) in do_setlink()
3236 err = -EINVAL; in do_setlink()
3239 err = nla_parse_nested_deprecated(vfinfo, IFLA_VF_MAX, in do_setlink()
3243 if (err < 0) in do_setlink()
3245 err = do_setvfinfo(dev, vfinfo); in do_setlink()
3246 if (err < 0) in do_setlink()
3251 err = 0; in do_setlink()
3259 err = -EOPNOTSUPP; in do_setlink()
3266 err = -EINVAL; in do_setlink()
3269 err = nla_parse_nested_deprecated(port, IFLA_PORT_MAX, in do_setlink()
3273 if (err < 0) in do_setlink()
3276 err = -EOPNOTSUPP; in do_setlink()
3280 err = ops->ndo_set_vf_port(dev, vf, port); in do_setlink()
3281 if (err < 0) in do_setlink()
3286 err = 0; in do_setlink()
3291 err = nla_parse_nested_deprecated(port, IFLA_PORT_MAX, in do_setlink()
3294 if (err < 0) in do_setlink()
3297 err = -EOPNOTSUPP; in do_setlink()
3299 err = ops->ndo_set_vf_port(dev, PORT_SELF_VF, port); in do_setlink()
3300 if (err < 0) in do_setlink()
3315 err = -EAFNOSUPPORT; in do_setlink()
3319 err = af_ops->set_link_af(dev, af, extack); in do_setlink()
3322 if (err < 0) in do_setlink()
3328 err = 0; in do_setlink()
3331 err = do_set_proto_down(dev, tb[IFLA_PROTO_DOWN], in do_setlink()
3333 if (err) in do_setlink()
3342 err = nla_parse_nested_deprecated(xdp, IFLA_XDP_MAX, in do_setlink()
3345 if (err < 0) in do_setlink()
3349 err = -EINVAL; in do_setlink()
3356 err = -EINVAL; in do_setlink()
3360 err = -EINVAL; in do_setlink()
3370 err = -EINVAL; in do_setlink()
3377 err = dev_change_xdp_fd(dev, extack, in do_setlink()
3381 if (err) in do_setlink()
3392 if (err < 0) in do_setlink()
3399 return err; in do_setlink()
3426 int err; in rtnl_setlink() local
3428 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_setlink()
3430 if (err < 0) in rtnl_setlink()
3433 err = rtnl_ensure_unique_netns(tb, extack, false); in rtnl_setlink()
3434 if (err < 0) in rtnl_setlink()
3439 err = PTR_ERR(tgt_net); in rtnl_setlink()
3454 err = -EINVAL; in rtnl_setlink()
3457 err = do_setlink(skb, dev, tgt_net, ifm, extack, tb, 0); in rtnl_setlink()
3458 else if (!err) in rtnl_setlink()
3459 err = -ENODEV; in rtnl_setlink()
3464 return err; in rtnl_setlink()
3529 int err; in rtnl_dellink() local
3531 err = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_dellink()
3533 if (err < 0) in rtnl_dellink()
3534 return err; in rtnl_dellink()
3536 err = rtnl_ensure_unique_netns(tb, extack, true); in rtnl_dellink()
3537 if (err < 0) in rtnl_dellink()
3538 return err; in rtnl_dellink()
3555 err = rtnl_delete_link(dev, portid, nlh); in rtnl_dellink()
3557 err = -ENODEV; in rtnl_dellink()
3559 err = rtnl_group_dellink(tgt_net, nla_get_u32(tb[IFLA_GROUP])); in rtnl_dellink()
3561 err = -EINVAL; in rtnl_dellink()
3568 return err; in rtnl_dellink()
3575 int err; in rtnl_configure_link() local
3579 err = __dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm), in rtnl_configure_link()
3581 if (err < 0) in rtnl_configure_link()
3582 return err; in rtnl_configure_link()
3605 int err; in rtnl_create_link() local
3641 err = validate_linkmsg(dev, tb, extack); in rtnl_create_link()
3642 if (err < 0) { in rtnl_create_link()
3644 return ERR_PTR(err); in rtnl_create_link()
3654 err = dev_validate_mtu(dev, mtu, extack); in rtnl_create_link()
3655 if (err) { in rtnl_create_link()
3657 return ERR_PTR(err); in rtnl_create_link()
3709 int err; in rtnl_changelink() local
3721 err = ops->changelink(dev, tb, data, extack); in rtnl_changelink()
3722 if (err < 0) in rtnl_changelink()
3723 return err; in rtnl_changelink()
3744 err = nla_parse_nested_deprecated(tbs->slave_attr, in rtnl_changelink()
3748 if (err < 0) in rtnl_changelink()
3749 return err; in rtnl_changelink()
3754 err = m_ops->slave_changelink(master_dev, dev, tb, slave_data, extack); in rtnl_changelink()
3755 if (err < 0) in rtnl_changelink()
3756 return err; in rtnl_changelink()
3771 int err; in rtnl_group_changelink() local
3775 err = do_setlink(skb, dev, tgt_net, ifm, extack, tb, 0); in rtnl_group_changelink()
3776 if (err < 0) in rtnl_group_changelink()
3777 return err; in rtnl_group_changelink()
3803 int err; in rtnl_newlink_create() local
3818 err = PTR_ERR(dev); in rtnl_newlink_create()
3825 err = ops->newlink(dev, ¶ms, extack); in rtnl_newlink_create()
3827 err = register_netdevice(dev); in rtnl_newlink_create()
3828 if (err < 0) { in rtnl_newlink_create()
3835 err = rtnl_configure_link(dev, ifm, portid, nlh); in rtnl_newlink_create()
3836 if (err < 0) in rtnl_newlink_create()
3839 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); in rtnl_newlink_create()
3840 if (err) in rtnl_newlink_create()
3846 return err; in rtnl_newlink_create()
3866 int err; in rtnl_get_peer_net() local
3871 err = rtnl_nla_parse_ifinfomsg(tb, data[ops->peer_type], extack); in rtnl_get_peer_net()
3872 if (err < 0) in rtnl_get_peer_net()
3873 return ERR_PTR(err); in rtnl_get_peer_net()
3876 err = ops->validate(tb, NULL, extack); in rtnl_get_peer_net()
3877 if (err < 0) in rtnl_get_peer_net()
3878 return ERR_PTR(err); in rtnl_get_peer_net()
4076 int i, err; in rtnl_valid_getlink_req() local
4094 err = nlmsg_parse_deprecated_strict(nlh, sizeof(*ifm), tb, IFLA_MAX, in rtnl_valid_getlink_req()
4096 if (err) in rtnl_valid_getlink_req()
4097 return err; in rtnl_valid_getlink_req()
4128 int err; in rtnl_getlink() local
4131 err = rtnl_valid_getlink_req(skb, nlh, tb, extack); in rtnl_getlink()
4132 if (err < 0) in rtnl_getlink()
4133 return err; in rtnl_getlink()
4135 err = rtnl_ensure_unique_netns(tb, extack, true); in rtnl_getlink()
4136 if (err < 0) in rtnl_getlink()
4137 return err; in rtnl_getlink()
4149 err = -EINVAL; in rtnl_getlink()
4158 err = -ENODEV; in rtnl_getlink()
4162 err = -ENOBUFS; in rtnl_getlink()
4175 err = rtnl_fill_ifinfo(nskb, dev, net, in rtnl_getlink()
4179 if (err < 0) { in rtnl_getlink()
4181 WARN_ON(err == -EMSGSIZE); in rtnl_getlink()
4184 err = rtnl_unicast(nskb, net, NETLINK_CB(skb).portid); in rtnl_getlink()
4189 return err; in rtnl_getlink()
4197 int err; in rtnl_alt_ifname() local
4199 err = nla_validate(attr, attr->nla_len, IFLA_MAX, ifla_policy, extack); in rtnl_alt_ifname()
4200 if (err) in rtnl_alt_ifname()
4201 return err; in rtnl_alt_ifname()
4218 err = netdev_name_node_alt_create(dev, alt_ifname); in rtnl_alt_ifname()
4219 if (!err) in rtnl_alt_ifname()
4222 err = netdev_name_node_alt_destroy(dev, alt_ifname); in rtnl_alt_ifname()
4225 err = -EINVAL; in rtnl_alt_ifname()
4229 if (!err) in rtnl_alt_ifname()
4231 return err; in rtnl_alt_ifname()
4243 int err, rem; in rtnl_linkprop() local
4245 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy, extack); in rtnl_linkprop()
4246 if (err) in rtnl_linkprop()
4247 return err; in rtnl_linkprop()
4249 err = rtnl_ensure_unique_netns(tb, extack, true); in rtnl_linkprop()
4250 if (err) in rtnl_linkprop()
4251 return err; in rtnl_linkprop()
4270 err = rtnl_alt_ifname(cmd, dev, attr, &changed, extack); in rtnl_linkprop()
4271 if (err) in rtnl_linkprop()
4272 return err; in rtnl_linkprop()
4389 int err = -ENOBUFS; in rtmsg_ifinfo_build_skb() local
4401 err = rtnl_fill_ifinfo(skb, dev, dev_net(dev), in rtmsg_ifinfo_build_skb()
4404 if (err < 0) { in rtmsg_ifinfo_build_skb()
4406 WARN_ON(err == -EMSGSIZE); in rtmsg_ifinfo_build_skb()
4412 rtnl_set_sk_err(net, RTNLGRP_LINK, err); in rtmsg_ifinfo_build_skb()
4503 int err = -ENOBUFS; in rtnl_fdb_notify() local
4509 err = nlmsg_populate_fdb_fill(skb, dev, addr, vid, in rtnl_fdb_notify()
4511 if (err < 0) { in rtnl_fdb_notify()
4519 rtnl_set_sk_err(net, RTNLGRP_NEIGH, err); in rtnl_fdb_notify()
4531 int err = -EINVAL; in ndo_dflt_fdb_add() local
4538 return err; in ndo_dflt_fdb_add()
4543 return err; in ndo_dflt_fdb_add()
4548 return err; in ndo_dflt_fdb_add()
4552 err = dev_uc_add_excl(dev, addr); in ndo_dflt_fdb_add()
4554 err = dev_mc_add_excl(dev, addr); in ndo_dflt_fdb_add()
4557 if (err == -EEXIST && !(flags & NLM_F_EXCL)) in ndo_dflt_fdb_add()
4558 err = 0; in ndo_dflt_fdb_add()
4560 return err; in ndo_dflt_fdb_add()
4595 int err; in rtnl_fdb_add() local
4597 err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, in rtnl_fdb_add()
4599 if (err < 0) in rtnl_fdb_add()
4600 return err; in rtnl_fdb_add()
4626 err = fdb_vid_parse(tb[NDA_VLAN], &vid, extack); in rtnl_fdb_add()
4627 if (err) in rtnl_fdb_add()
4628 return err; in rtnl_fdb_add()
4630 err = -EOPNOTSUPP; in rtnl_fdb_add()
4639 err = ops->ndo_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
4641 if (err) in rtnl_fdb_add()
4652 err = dev->netdev_ops->ndo_fdb_add(ndm, tb, dev, addr, in rtnl_fdb_add()
4657 err = ndo_dflt_fdb_add(ndm, tb, dev, addr, vid, in rtnl_fdb_add()
4660 if (!err && !notified) { in rtnl_fdb_add()
4667 return err; in rtnl_fdb_add()
4678 int err = -EINVAL; in ndo_dflt_fdb_del() local
4685 return err; in ndo_dflt_fdb_del()
4689 err = dev_uc_del(dev, addr); in ndo_dflt_fdb_del()
4691 err = dev_mc_del(dev, addr); in ndo_dflt_fdb_del()
4693 return err; in ndo_dflt_fdb_del()
4707 int err; in rtnl_fdb_del() local
4714 err = nlmsg_parse_deprecated(nlh, sizeof(*ndm), tb, NDA_MAX, in rtnl_fdb_del()
4720 err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL, extack); in rtnl_fdb_del()
4722 if (err < 0) in rtnl_fdb_del()
4723 return err; in rtnl_fdb_del()
4744 err = fdb_vid_parse(tb[NDA_VLAN], &vid, extack); in rtnl_fdb_del()
4745 if (err) in rtnl_fdb_del()
4746 return err; in rtnl_fdb_del()
4754 err = -EOPNOTSUPP; in rtnl_fdb_del()
4765 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid, in rtnl_fdb_del()
4769 err = ops->ndo_fdb_del_bulk(nlh, dev, extack); in rtnl_fdb_del()
4772 if (err) in rtnl_fdb_del()
4785 err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid, in rtnl_fdb_del()
4788 err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); in rtnl_fdb_del()
4791 err = -EOPNOTSUPP; in rtnl_fdb_del()
4793 err = ops->ndo_fdb_del_bulk(nlh, dev, extack); in rtnl_fdb_del()
4796 if (!err) { in rtnl_fdb_del()
4804 return err; in rtnl_fdb_del()
4816 int err; in nlmsg_populate_fdb() local
4825 err = nlmsg_populate_fdb_fill(skb, dev, ha->addr, 0, in nlmsg_populate_fdb()
4829 if (err < 0) in nlmsg_populate_fdb()
4830 return err; in nlmsg_populate_fdb()
4854 int err; in ndo_dflt_fdb_dump() local
4860 err = nlmsg_populate_fdb(skb, cb, dev, idx, &dev->uc); in ndo_dflt_fdb_dump()
4861 if (err) in ndo_dflt_fdb_dump()
4863 err = nlmsg_populate_fdb(skb, cb, dev, idx, &dev->mc); in ndo_dflt_fdb_dump()
4866 return err; in ndo_dflt_fdb_dump()
4876 int err, i; in valid_fdb_dump_strict() local
4890 err = nlmsg_parse_deprecated_strict(nlh, sizeof(struct ndmsg), tb, in valid_fdb_dump_strict()
4892 if (err < 0) in valid_fdb_dump_strict()
4893 return err; in valid_fdb_dump_strict()
4929 int err; in valid_fdb_dump_legacy() local
4943 err = nlmsg_parse_deprecated(nlh, sizeof(struct ifinfomsg), in valid_fdb_dump_legacy()
4946 if (err < 0) { in valid_fdb_dump_legacy()
4948 } else if (err == 0) { in valid_fdb_dump_legacy()
4968 int err; in rtnl_fdb_dump() local
4973 err = valid_fdb_dump_strict(cb->nlh, &br_idx, &brport_idx, in rtnl_fdb_dump()
4976 err = valid_fdb_dump_legacy(cb->nlh, &br_idx, &brport_idx, in rtnl_fdb_dump()
4978 if (err < 0) in rtnl_fdb_dump()
4979 return err; in rtnl_fdb_dump()
5011 err = cops->ndo_fdb_dump(skb, cb, br_dev, dev, in rtnl_fdb_dump()
5013 if (err == -EMSGSIZE) in rtnl_fdb_dump()
5019 err = dev->netdev_ops->ndo_fdb_dump(skb, cb, dev, NULL, in rtnl_fdb_dump()
5022 err = ndo_dflt_fdb_dump(skb, cb, dev, NULL, &fidx); in rtnl_fdb_dump()
5023 if (err == -EMSGSIZE) in rtnl_fdb_dump()
5044 int err, i; in valid_fdb_get_strict() local
5063 err = nlmsg_parse_deprecated_strict(nlh, sizeof(struct ndmsg), tb, in valid_fdb_get_strict()
5065 if (err < 0) in valid_fdb_get_strict()
5066 return err; in valid_fdb_get_strict()
5086 err = fdb_vid_parse(tb[i], vid, extack); in valid_fdb_get_strict()
5087 if (err) in valid_fdb_get_strict()
5088 return err; in valid_fdb_get_strict()
5114 int err; in rtnl_fdb_get() local
5116 err = valid_fdb_get_strict(nlh, tb, &ndm_flags, &br_idx, in rtnl_fdb_get()
5118 if (err < 0) in rtnl_fdb_get()
5119 return err; in rtnl_fdb_get()
5185 err = ops->ndo_fdb_get(skb, tb, dev, addr, vid, in rtnl_fdb_get()
5188 if (err) in rtnl_fdb_get()
5194 return err; in rtnl_fdb_get()
5219 int err = 0; in ndo_dflt_bridge_getlink() local
5261 err = vlan_fill(skb, dev, filter_mask); in ndo_dflt_bridge_getlink()
5262 if (err) { in ndo_dflt_bridge_getlink()
5304 return err ? err : -EMSGSIZE; in ndo_dflt_bridge_getlink()
5313 int err, i; in valid_bridge_getlink_req() local
5330 err = nlmsg_parse_deprecated_strict(nlh, in valid_bridge_getlink_req()
5335 err = nlmsg_parse_deprecated(nlh, sizeof(struct ifinfomsg), in valid_bridge_getlink_req()
5339 if (err < 0) in valid_bridge_getlink_req()
5340 return err; in valid_bridge_getlink_req()
5371 int err; in rtnl_bridge_getlink() local
5373 err = valid_bridge_getlink_req(nlh, cb->strict_check, &filter_mask, in rtnl_bridge_getlink()
5375 if (err < 0 && cb->strict_check) in rtnl_bridge_getlink()
5376 return err; in rtnl_bridge_getlink()
5385 err = br_dev->netdev_ops->ndo_bridge_getlink( in rtnl_bridge_getlink()
5388 if (err < 0 && err != -EOPNOTSUPP) { in rtnl_bridge_getlink()
5400 err = ops->ndo_bridge_getlink(skb, portid, in rtnl_bridge_getlink()
5404 if (err < 0 && err != -EOPNOTSUPP) { in rtnl_bridge_getlink()
5414 err = skb->len; in rtnl_bridge_getlink()
5419 return err; in rtnl_bridge_getlink()
5441 int err = -EOPNOTSUPP; in rtnl_bridge_notify() local
5448 err = -ENOMEM; in rtnl_bridge_notify()
5452 err = dev->netdev_ops->ndo_bridge_getlink(skb, 0, 0, dev, 0, 0); in rtnl_bridge_notify()
5453 if (err < 0) in rtnl_bridge_notify()
5466 WARN_ON(err == -EMSGSIZE); in rtnl_bridge_notify()
5468 if (err) in rtnl_bridge_notify()
5469 rtnl_set_sk_err(net, RTNLGRP_LINK, err); in rtnl_bridge_notify()
5470 return err; in rtnl_bridge_notify()
5480 int rem, err = -EOPNOTSUPP; in rtnl_bridge_setlink() local
5518 err = -EOPNOTSUPP; in rtnl_bridge_setlink()
5522 err = br_dev->netdev_ops->ndo_bridge_setlink(dev, nlh, flags, in rtnl_bridge_setlink()
5524 if (err) in rtnl_bridge_setlink()
5532 err = -EOPNOTSUPP; in rtnl_bridge_setlink()
5534 err = dev->netdev_ops->ndo_bridge_setlink(dev, nlh, in rtnl_bridge_setlink()
5537 if (!err) { in rtnl_bridge_setlink()
5543 err = rtnl_bridge_notify(dev); in rtnl_bridge_setlink()
5550 return err; in rtnl_bridge_setlink()
5560 int rem, err = -EOPNOTSUPP; in rtnl_bridge_dellink() local
5594 err = -EOPNOTSUPP; in rtnl_bridge_dellink()
5598 err = br_dev->netdev_ops->ndo_bridge_dellink(dev, nlh, flags); in rtnl_bridge_dellink()
5599 if (err) in rtnl_bridge_dellink()
5607 err = -EOPNOTSUPP; in rtnl_bridge_dellink()
5609 err = dev->netdev_ops->ndo_bridge_dellink(dev, nlh, in rtnl_bridge_dellink()
5612 if (!err) { in rtnl_bridge_dellink()
5618 err = rtnl_bridge_notify(dev); in rtnl_bridge_dellink()
5625 return err; in rtnl_bridge_dellink()
5657 int err; in rtnl_offload_xstats_fill_ndo() local
5670 err = dev->netdev_ops->ndo_get_offload_stats(attr_id, dev, attr_data); in rtnl_offload_xstats_fill_ndo()
5671 if (err) in rtnl_offload_xstats_fill_ndo()
5672 return err; in rtnl_offload_xstats_fill_ndo()
5700 int err; in rtnl_offload_xstats_get_stats() local
5708 err = netdev_offload_xstats_get(dev, type, stats, &used, extack); in rtnl_offload_xstats_get_stats()
5709 if (err) in rtnl_offload_xstats_get_stats()
5710 return err; in rtnl_offload_xstats_get_stats()
5751 int err; in rtnl_offload_xstats_fill_hw_s_info() local
5753 err = rtnl_offload_xstats_get_stats(dev, t_l3, &ru_l3, NULL, extack); in rtnl_offload_xstats_fill_hw_s_info()
5754 if (err) in rtnl_offload_xstats_fill_hw_s_info()
5755 return err; in rtnl_offload_xstats_fill_hw_s_info()
5783 int err; in rtnl_offload_xstats_fill() local
5788 err = rtnl_offload_xstats_fill_ndo(dev, attr_id_cpu_hit, skb); in rtnl_offload_xstats_fill()
5789 if (!err) { in rtnl_offload_xstats_fill()
5791 } else if (err != -ENODATA) { in rtnl_offload_xstats_fill()
5793 return err; in rtnl_offload_xstats_fill()
5801 err = rtnl_offload_xstats_fill_hw_s_info(skb, dev, extack); in rtnl_offload_xstats_fill()
5802 if (err) in rtnl_offload_xstats_fill()
5803 return err; in rtnl_offload_xstats_fill()
5824 err = rtnl_offload_xstats_get_stats(dev, t_l3, NULL, in rtnl_offload_xstats_fill()
5826 if (err) in rtnl_offload_xstats_fill()
5827 return err; in rtnl_offload_xstats_fill()
5913 int err; in rtnl_fill_statsinfo() local
5935 err = -EMSGSIZE; in rtnl_fill_statsinfo()
5951 err = -EMSGSIZE; in rtnl_fill_statsinfo()
5955 err = ops->fill_linkxstats(skb, dev, prividx, *idxattr); in rtnl_fill_statsinfo()
5957 if (err) in rtnl_fill_statsinfo()
5976 err = -EMSGSIZE; in rtnl_fill_statsinfo()
5980 err = ops->fill_linkxstats(skb, dev, prividx, *idxattr); in rtnl_fill_statsinfo()
5982 if (err) in rtnl_fill_statsinfo()
5997 err = -EMSGSIZE; in rtnl_fill_statsinfo()
6001 err = rtnl_offload_xstats_fill(skb, dev, prividx, in rtnl_fill_statsinfo()
6003 if (err == -ENODATA) in rtnl_fill_statsinfo()
6008 if (err && err != -ENODATA) in rtnl_fill_statsinfo()
6019 err = -EMSGSIZE; in rtnl_fill_statsinfo()
6032 err = -EMSGSIZE; in rtnl_fill_statsinfo()
6035 err = af_ops->fill_stats_af(skb, dev); in rtnl_fill_statsinfo()
6037 if (err == -ENODATA) { in rtnl_fill_statsinfo()
6039 } else if (err < 0) { in rtnl_fill_statsinfo()
6065 return err; in rtnl_fill_statsinfo()
6161 int err; in rtnl_stats_get_parse_filters() local
6164 err = nla_parse_nested(tb, IFLA_STATS_MAX, ifla_filters, in rtnl_stats_get_parse_filters()
6166 if (err < 0) in rtnl_stats_get_parse_filters()
6167 return err; in rtnl_stats_get_parse_filters()
6188 int err; in rtnl_stats_get_parse() local
6195 err = nlmsg_parse(nlh, sizeof(struct if_stats_msg), tb, in rtnl_stats_get_parse()
6197 if (err < 0) in rtnl_stats_get_parse()
6198 return err; in rtnl_stats_get_parse()
6201 err = rtnl_stats_get_parse_filters(tb[IFLA_STATS_GET_FILTERS], in rtnl_stats_get_parse()
6203 if (err) in rtnl_stats_get_parse()
6204 return err; in rtnl_stats_get_parse()
6248 int err; in rtnl_stats_get() local
6250 err = rtnl_valid_stats_req(nlh, netlink_strict_get_check(skb), in rtnl_stats_get()
6252 if (err) in rtnl_stats_get()
6253 return err; in rtnl_stats_get()
6269 err = rtnl_stats_get_parse(nlh, ifsm->filter_mask, &filters, extack); in rtnl_stats_get()
6270 if (err) in rtnl_stats_get()
6271 return err; in rtnl_stats_get()
6277 err = rtnl_fill_statsinfo(nskb, dev, RTM_NEWSTATS, in rtnl_stats_get()
6280 if (err < 0) { in rtnl_stats_get()
6282 WARN_ON(err == -EMSGSIZE); in rtnl_stats_get()
6285 err = rtnl_unicast(nskb, net, NETLINK_CB(skb).portid); in rtnl_stats_get()
6288 return err; in rtnl_stats_get()
6304 int err; in rtnl_stats_dump() local
6308 err = rtnl_valid_stats_req(cb->nlh, cb->strict_check, true, extack); in rtnl_stats_dump()
6309 if (err) in rtnl_stats_dump()
6310 return err; in rtnl_stats_dump()
6318 err = rtnl_stats_get_parse(cb->nlh, ifsm->filter_mask, &filters, in rtnl_stats_dump()
6320 if (err) in rtnl_stats_dump()
6321 return err; in rtnl_stats_dump()
6324 err = rtnl_fill_statsinfo(skb, dev, RTM_NEWSTATS, in rtnl_stats_dump()
6333 WARN_ON((err == -EMSGSIZE) && (skb->len == 0)); in rtnl_stats_dump()
6335 if (err < 0) in rtnl_stats_dump()
6342 return err; in rtnl_stats_dump()
6351 int err = -ENOBUFS; in rtnl_offload_xstats_notify() local
6365 err = rtnl_fill_statsinfo(skb, dev, RTM_NEWSTATS, 0, 0, 0, 0, in rtnl_offload_xstats_notify()
6367 if (err < 0) { in rtnl_offload_xstats_notify()
6376 rtnl_set_sk_err(net, RTNLGRP_STATS, err); in rtnl_offload_xstats_notify()
6390 int err; in rtnl_stats_set() local
6392 err = rtnl_valid_stats_req(nlh, netlink_strict_get_check(skb), in rtnl_stats_set()
6394 if (err) in rtnl_stats_set()
6395 return err; in rtnl_stats_set()
6416 err = nlmsg_parse(nlh, sizeof(*ifsm), tb, IFLA_STATS_GETSET_MAX, in rtnl_stats_set()
6418 if (err < 0) in rtnl_stats_set()
6419 return err; in rtnl_stats_set()
6425 err = netdev_offload_xstats_enable(dev, t_l3, extack); in rtnl_stats_set()
6427 err = netdev_offload_xstats_disable(dev, t_l3); in rtnl_stats_set()
6429 if (!err) in rtnl_stats_set()
6431 else if (err != -EALREADY) in rtnl_stats_set()
6432 return err; in rtnl_stats_set()
6479 int err; in rtnl_mdb_dump() local
6484 err = rtnl_mdb_valid_dump_req(cb->nlh, cb->extack); in rtnl_mdb_dump()
6485 if (err) in rtnl_mdb_dump()
6486 return err; in rtnl_mdb_dump()
6498 err = dev->netdev_ops->ndo_mdb_dump(dev, skb, cb); in rtnl_mdb_dump()
6499 if (err == -EMSGSIZE) in rtnl_mdb_dump()
6570 int err; in rtnl_mdb_get() local
6572 err = nlmsg_parse(nlh, sizeof(struct br_port_msg), tb, in rtnl_mdb_get()
6574 if (err) in rtnl_mdb_get()
6575 return err; in rtnl_mdb_get()
6673 int err; in rtnl_mdb_add() local
6675 err = nlmsg_parse_deprecated(nlh, sizeof(*bpm), tb, in rtnl_mdb_add()
6677 if (err) in rtnl_mdb_add()
6678 return err; in rtnl_mdb_add()
6754 int err; in rtnl_mdb_del() local
6757 err = nlmsg_parse_deprecated(nlh, sizeof(*bpm), tb, in rtnl_mdb_del()
6761 err = nlmsg_parse(nlh, sizeof(*bpm), tb, MDBA_SET_ENTRY_MAX, in rtnl_mdb_del()
6763 if (err) in rtnl_mdb_del()
6764 return err; in rtnl_mdb_del()
6805 int err; in rtnl_dumpit() local
6815 err = dumpit(skb, cb); in rtnl_dumpit()
6823 if (err < 0 && err != -EMSGSIZE) in rtnl_dumpit()
6824 return err; in rtnl_dumpit()
6825 if (!err) in rtnl_dumpit()
6830 return err; in rtnl_dumpit()
6854 int err = -EOPNOTSUPP; in rtnetlink_rcv_msg() local
6896 err = 0; in rtnetlink_rcv_msg()
6899 err = -EPROTONOSUPPORT; in rtnetlink_rcv_msg()
6904 if (err == 0) { in rtnetlink_rcv_msg()
6911 err = rtnetlink_dump_start(rtnl, skb, nlh, &c); in rtnetlink_rcv_msg()
6917 return err; in rtnetlink_rcv_msg()
6930 err = -EPROTONOSUPPORT; in rtnetlink_rcv_msg()
6946 err = doit(skb, nlh, extack); in rtnetlink_rcv_msg()
6948 return err; in rtnetlink_rcv_msg()
6955 err = link->doit(skb, nlh, extack); in rtnetlink_rcv_msg()
6960 return err; in rtnetlink_rcv_msg()
6964 return err; in rtnetlink_rcv_msg()