Lines Matching defs:devlink

26 struct devlink_port *devlink_port_get_by_index(struct devlink *devlink,
29 return xa_load(&devlink->ports, port_index);
32 struct devlink_port *devlink_port_get_from_attrs(struct devlink *devlink,
39 devlink_port = devlink_port_get_by_index(devlink, port_index);
47 struct devlink_port *devlink_port_get_from_info(struct devlink *devlink,
50 return devlink_port_get_from_attrs(devlink, info->attrs);
187 if (devlink_nl_put_handle(msg, devlink_port->devlink))
196 struct devlink *devlink = devlink_port->devlink;
198 return nla_total_size(strlen(devlink->dev->bus->name) + 1) /* DEVLINK_ATTR_BUS_NAME */
199 + nla_total_size(strlen(dev_name(devlink->dev)) + 1) /* DEVLINK_ATTR_DEV_NAME */
444 struct devlink *devlink = devlink_port->devlink;
451 if (devlink_nl_put_handle(msg, devlink))
502 struct devlink *devlink = devlink_port->devlink;
508 if (!xa_get_mark(&devlinks, devlink->index, DEVLINK_REGISTERED))
521 genlmsg_multicast_netns(&devlink_nl_family, devlink_net(devlink), msg,
525 static void devlink_ports_notify(struct devlink *devlink,
531 xa_for_each(&devlink->ports, port_index, devlink_port)
535 void devlink_ports_notify_register(struct devlink *devlink)
537 devlink_ports_notify(devlink, DEVLINK_CMD_PORT_NEW);
540 void devlink_ports_notify_unregister(struct devlink *devlink)
542 devlink_ports_notify(devlink, DEVLINK_CMD_PORT_DEL);
567 devlink_nl_port_get_dump_one(struct sk_buff *msg, struct devlink *devlink,
575 xa_for_each_start(&devlink->ports, port_index, devlink_port, state->idx) {
797 struct devlink *devlink = info->user_ptr[0];
821 return devlink_port->ops->port_split(devlink, devlink_port, count,
829 struct devlink *devlink = info->user_ptr[0];
833 return devlink_port->ops->port_unsplit(devlink, devlink_port, info->extack);
840 struct devlink *devlink = info->user_ptr[0];
845 if (!devlink->ops->port_new)
874 err = devlink->ops->port_new(devlink, &new_attrs,
896 devlink_port->ops->port_del(devlink, devlink_port, NULL);
904 struct devlink *devlink = info->user_ptr[0];
909 return devlink_port->ops->port_del(devlink, devlink_port, extack);
917 dev_warn(port->devlink->dev, "Type was not set for devlink port.");
949 * devlink_port_init() - Init devlink port
951 * @devlink: devlink
952 * @devlink_port: devlink port
955 * that may be called before devlink port registration.
959 void devlink_port_init(struct devlink *devlink,
964 devlink_port->devlink = devlink;
971 * devlink_port_fini() - Deinitialize devlink port
973 * @devlink_port: devlink port
976 * that may be called after devlink port unregistration.
989 * devl_port_register_with_ops() - Register devlink port
991 * @devlink: devlink
992 * @devlink_port: devlink port
996 * Register devlink port with provided port index. User can use
1002 int devl_port_register_with_ops(struct devlink *devlink,
1009 devl_assert_locked(devlink);
1013 devlink_port_init(devlink, devlink_port);
1019 err = xa_insert(&devlink->ports, port_index, devlink_port, GFP_KERNEL);
1033 * devlink_port_register_with_ops - Register devlink port
1035 * @devlink: devlink
1036 * @devlink_port: devlink port
1040 * Register devlink port with provided port index. User can use
1046 * Context: Takes and release devlink->lock <mutex>.
1048 int devlink_port_register_with_ops(struct devlink *devlink,
1055 devl_lock(devlink);
1056 err = devl_port_register_with_ops(devlink, devlink_port,
1058 devl_unlock(devlink);
1064 * devl_port_unregister() - Unregister devlink port
1066 * @devlink_port: devlink port
1070 lockdep_assert_held(&devlink_port->devlink->lock);
1075 xa_erase(&devlink_port->devlink->ports, devlink_port->index);
1082 * devlink_port_unregister - Unregister devlink port
1084 * @devlink_port: devlink port
1086 * Context: Takes and release devlink->lock <mutex>.
1090 struct devlink *devlink = devlink_port->devlink;
1092 devl_lock(devlink);
1094 devl_unlock(devlink);
1103 /* If driver registers devlink port, it should set devlink port
1177 * @devlink_port: devlink port
1183 dev_warn(devlink_port->devlink->dev,
1184 "devlink port type for port %d set to Ethernet without a software interface reference, device type not supported by the kernel?\n",
1193 * @devlink_port: devlink port
1206 * @devlink_port: devlink port
1214 dev_warn(devlink_port->devlink->dev,
1215 "devlink port type for port %d cleared without a software interface reference, device type not supported by the kernel?\n",
1226 struct devlink *devlink;
1230 devlink = devlink_port->devlink;
1243 if (devlink_net(devlink) != dev_net(netdev))
1254 if (devlink_net(devlink) != dev_net(netdev))
1295 * @devlink_port: devlink port
1296 * @attrs: devlink port attrs
1316 * @devlink_port: devlink port
1317 * @controller: associated controller number for the devlink port instance
1318 * @pf: associated PF for the devlink port instance
1342 * @devlink_port: devlink port
1343 * @controller: associated controller number for the devlink port instance
1344 * @pf: associated PF for the devlink port instance
1345 * @vf: associated VF of a PF for the devlink port instance
1370 * @devlink_port: devlink port
1371 * @controller: associated controller number for the devlink port instance
1372 * @pf: associated PF for the devlink port instance
1373 * @sf: associated SF of a PF for the devlink port instance
1398 * @devlink_port: devlink port
1399 * @linecard: devlink linecard
1488 * any devlink lock as only permanent values are accessed.
1506 * any devlink lock as only permanent values are accessed.