Lines Matching defs:devlink

24 static struct devlink_sb *devlink_sb_get_by_index(struct devlink *devlink,
29 list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
36 static bool devlink_sb_index_exists(struct devlink *devlink,
39 return devlink_sb_get_by_index(devlink, sb_index);
42 static struct devlink_sb *devlink_sb_get_from_attrs(struct devlink *devlink,
49 devlink_sb = devlink_sb_get_by_index(devlink, sb_index);
57 static struct devlink_sb *devlink_sb_get_from_info(struct devlink *devlink,
60 return devlink_sb_get_from_attrs(devlink, info->attrs);
167 static int devlink_nl_sb_fill(struct sk_buff *msg, struct devlink *devlink,
178 if (devlink_nl_put_handle(msg, devlink))
207 struct devlink *devlink = info->user_ptr[0];
212 devlink_sb = devlink_sb_get_from_info(devlink, info);
220 err = devlink_nl_sb_fill(msg, devlink, devlink_sb,
232 devlink_nl_sb_get_dump_one(struct sk_buff *msg, struct devlink *devlink,
240 list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
245 err = devlink_nl_sb_fill(msg, devlink, devlink_sb,
264 static int devlink_nl_sb_pool_fill(struct sk_buff *msg, struct devlink *devlink,
273 err = devlink->ops->sb_pool_get(devlink, devlink_sb->index,
282 if (devlink_nl_put_handle(msg, devlink))
309 struct devlink *devlink = info->user_ptr[0];
315 devlink_sb = devlink_sb_get_from_info(devlink, info);
324 if (!devlink->ops->sb_pool_get)
331 err = devlink_nl_sb_pool_fill(msg, devlink, devlink_sb, pool_index,
343 struct devlink *devlink,
356 err = devlink_nl_sb_pool_fill(msg, devlink,
369 devlink_nl_sb_pool_get_dump_one(struct sk_buff *msg, struct devlink *devlink,
377 if (!devlink->ops->sb_pool_get)
380 list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
382 devlink, devlink_sb,
402 static int devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index,
408 const struct devlink_ops *ops = devlink->ops;
411 return ops->sb_pool_set(devlink, sb_index, pool_index,
418 struct devlink *devlink = info->user_ptr[0];
425 devlink_sb = devlink_sb_get_from_info(devlink, info);
442 return devlink_sb_pool_set(devlink, devlink_sb->index,
448 struct devlink *devlink,
455 const struct devlink_ops *ops = devlink->ops;
469 if (devlink_nl_put_handle(msg, devlink))
510 struct devlink *devlink = devlink_port->devlink;
516 devlink_sb = devlink_sb_get_from_info(devlink, info);
525 if (!devlink->ops->sb_port_pool_get)
532 err = devlink_nl_sb_port_pool_fill(msg, devlink, devlink_port,
545 struct devlink *devlink,
555 xa_for_each(&devlink->ports, port_index, devlink_port) {
561 err = devlink_nl_sb_port_pool_fill(msg, devlink,
577 struct devlink *devlink,
585 if (!devlink->ops->sb_port_pool_get)
588 list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
590 devlink, devlink_sb,
616 const struct devlink_ops *ops = devlink_port->devlink->ops;
628 struct devlink *devlink = info->user_ptr[0];
634 devlink_sb = devlink_sb_get_from_info(devlink, info);
652 devlink_nl_sb_tc_pool_bind_fill(struct sk_buff *msg, struct devlink *devlink,
659 const struct devlink_ops *ops = devlink->ops;
675 if (devlink_nl_put_handle(msg, devlink))
720 struct devlink *devlink = devlink_port->devlink;
727 devlink_sb = devlink_sb_get_from_info(devlink, info);
740 if (!devlink->ops->sb_tc_pool_bind_get)
747 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink, devlink_port,
762 struct devlink *devlink,
771 xa_for_each(&devlink->ports, port_index, devlink_port) {
778 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink,
796 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink,
813 struct devlink *devlink,
822 if (!devlink->ops->sb_tc_pool_bind_get)
825 list_for_each_entry(devlink_sb, &devlink->sb_list, list) {
827 devlink, devlink_sb,
855 const struct devlink_ops *ops = devlink_port->devlink->ops;
868 struct devlink *devlink = info->user_ptr[0];
876 devlink_sb = devlink_sb_get_from_info(devlink, info);
906 struct devlink *devlink = info->user_ptr[0];
907 const struct devlink_ops *ops = devlink->ops;
910 devlink_sb = devlink_sb_get_from_info(devlink, info);
915 return ops->sb_occ_snapshot(devlink, devlink_sb->index);
922 struct devlink *devlink = info->user_ptr[0];
923 const struct devlink_ops *ops = devlink->ops;
926 devlink_sb = devlink_sb_get_from_info(devlink, info);
931 return ops->sb_occ_max_clear(devlink, devlink_sb->index);
935 int devl_sb_register(struct devlink *devlink, unsigned int sb_index,
942 lockdep_assert_held(&devlink->lock);
944 if (devlink_sb_index_exists(devlink, sb_index))
956 list_add_tail(&devlink_sb->list, &devlink->sb_list);
961 int devlink_sb_register(struct devlink *devlink, unsigned int sb_index,
968 devl_lock(devlink);
969 err = devl_sb_register(devlink, sb_index, size, ingress_pools_count,
972 devl_unlock(devlink);
977 void devl_sb_unregister(struct devlink *devlink, unsigned int sb_index)
981 lockdep_assert_held(&devlink->lock);
983 devlink_sb = devlink_sb_get_by_index(devlink, sb_index);
990 void devlink_sb_unregister(struct devlink *devlink, unsigned int sb_index)
992 devl_lock(devlink);
993 devl_sb_unregister(devlink, sb_index);
994 devl_unlock(devlink);