Lines Matching refs:devlink
24 static struct devlink_sb *devlink_sb_get_by_index(struct devlink *devlink, in devlink_sb_get_by_index() argument
29 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_sb_get_by_index()
36 static bool devlink_sb_index_exists(struct devlink *devlink, in devlink_sb_index_exists() argument
39 return devlink_sb_get_by_index(devlink, sb_index); in devlink_sb_index_exists()
42 static struct devlink_sb *devlink_sb_get_from_attrs(struct devlink *devlink, in devlink_sb_get_from_attrs() argument
49 devlink_sb = devlink_sb_get_by_index(devlink, sb_index); in devlink_sb_get_from_attrs()
57 static struct devlink_sb *devlink_sb_get_from_info(struct devlink *devlink, in devlink_sb_get_from_info() argument
60 return devlink_sb_get_from_attrs(devlink, info->attrs); in devlink_sb_get_from_info()
167 static int devlink_nl_sb_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_fill() argument
178 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_fill()
207 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_get_doit() local
212 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_get_doit()
220 err = devlink_nl_sb_fill(msg, devlink, devlink_sb, in devlink_nl_sb_get_doit()
232 devlink_nl_sb_get_dump_one(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_get_dump_one() argument
240 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_nl_sb_get_dump_one()
245 err = devlink_nl_sb_fill(msg, devlink, devlink_sb, in devlink_nl_sb_get_dump_one()
264 static int devlink_nl_sb_pool_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_pool_fill() argument
273 err = devlink->ops->sb_pool_get(devlink, devlink_sb->index, in devlink_nl_sb_pool_fill()
282 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_pool_fill()
309 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_pool_get_doit() local
315 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_pool_get_doit()
324 if (!devlink->ops->sb_pool_get) in devlink_nl_sb_pool_get_doit()
331 err = devlink_nl_sb_pool_fill(msg, devlink, devlink_sb, pool_index, in devlink_nl_sb_pool_get_doit()
343 struct devlink *devlink, in __sb_pool_get_dumpit() argument
356 err = devlink_nl_sb_pool_fill(msg, devlink, in __sb_pool_get_dumpit()
369 devlink_nl_sb_pool_get_dump_one(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_pool_get_dump_one() argument
377 if (!devlink->ops->sb_pool_get) in devlink_nl_sb_pool_get_dump_one()
380 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_nl_sb_pool_get_dump_one()
382 devlink, devlink_sb, in devlink_nl_sb_pool_get_dump_one()
402 static int devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index, in devlink_sb_pool_set() argument
408 const struct devlink_ops *ops = devlink->ops; in devlink_sb_pool_set()
411 return ops->sb_pool_set(devlink, sb_index, pool_index, in devlink_sb_pool_set()
418 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_pool_set_doit() local
425 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_pool_set_doit()
442 return devlink_sb_pool_set(devlink, devlink_sb->index, in devlink_nl_sb_pool_set_doit()
448 struct devlink *devlink, in devlink_nl_sb_port_pool_fill() argument
455 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_port_pool_fill()
469 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_port_pool_fill()
510 struct devlink *devlink = devlink_port->devlink; in devlink_nl_sb_port_pool_get_doit() local
516 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_port_pool_get_doit()
525 if (!devlink->ops->sb_port_pool_get) in devlink_nl_sb_port_pool_get_doit()
532 err = devlink_nl_sb_port_pool_fill(msg, devlink, devlink_port, in devlink_nl_sb_port_pool_get_doit()
545 struct devlink *devlink, in __sb_port_pool_get_dumpit() argument
555 xa_for_each(&devlink->ports, port_index, devlink_port) { in __sb_port_pool_get_dumpit()
561 err = devlink_nl_sb_port_pool_fill(msg, devlink, in __sb_port_pool_get_dumpit()
577 struct devlink *devlink, in devlink_nl_sb_port_pool_get_dump_one() argument
585 if (!devlink->ops->sb_port_pool_get) in devlink_nl_sb_port_pool_get_dump_one()
588 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_nl_sb_port_pool_get_dump_one()
590 devlink, devlink_sb, in devlink_nl_sb_port_pool_get_dump_one()
616 const struct devlink_ops *ops = devlink_port->devlink->ops; in devlink_sb_port_pool_set()
628 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_port_pool_set_doit() local
634 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_port_pool_set_doit()
652 devlink_nl_sb_tc_pool_bind_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_tc_pool_bind_fill() argument
659 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_tc_pool_bind_fill()
675 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_tc_pool_bind_fill()
720 struct devlink *devlink = devlink_port->devlink; in devlink_nl_sb_tc_pool_bind_get_doit() local
727 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_tc_pool_bind_get_doit()
740 if (!devlink->ops->sb_tc_pool_bind_get) in devlink_nl_sb_tc_pool_bind_get_doit()
747 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink, devlink_port, in devlink_nl_sb_tc_pool_bind_get_doit()
762 struct devlink *devlink, in __sb_tc_pool_bind_get_dumpit() argument
771 xa_for_each(&devlink->ports, port_index, devlink_port) { in __sb_tc_pool_bind_get_dumpit()
778 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink, in __sb_tc_pool_bind_get_dumpit()
796 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink, in __sb_tc_pool_bind_get_dumpit()
813 struct devlink *devlink, in devlink_nl_sb_tc_pool_bind_get_dump_one() argument
822 if (!devlink->ops->sb_tc_pool_bind_get) in devlink_nl_sb_tc_pool_bind_get_dump_one()
825 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_nl_sb_tc_pool_bind_get_dump_one()
827 devlink, devlink_sb, in devlink_nl_sb_tc_pool_bind_get_dump_one()
855 const struct devlink_ops *ops = devlink_port->devlink->ops; in devlink_sb_tc_pool_bind_set()
868 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_tc_pool_bind_set_doit() local
876 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_tc_pool_bind_set_doit()
905 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_occ_snapshot_doit() local
906 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_occ_snapshot_doit()
909 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_occ_snapshot_doit()
914 return ops->sb_occ_snapshot(devlink, devlink_sb->index); in devlink_nl_sb_occ_snapshot_doit()
921 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_occ_max_clear_doit() local
922 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_occ_max_clear_doit()
925 devlink_sb = devlink_sb_get_from_info(devlink, info); in devlink_nl_sb_occ_max_clear_doit()
930 return ops->sb_occ_max_clear(devlink, devlink_sb->index); in devlink_nl_sb_occ_max_clear_doit()
934 int devl_sb_register(struct devlink *devlink, unsigned int sb_index, in devl_sb_register() argument
941 lockdep_assert_held(&devlink->lock); in devl_sb_register()
943 if (devlink_sb_index_exists(devlink, sb_index)) in devl_sb_register()
955 list_add_tail(&devlink_sb->list, &devlink->sb_list); in devl_sb_register()
960 int devlink_sb_register(struct devlink *devlink, unsigned int sb_index, in devlink_sb_register() argument
967 devl_lock(devlink); in devlink_sb_register()
968 err = devl_sb_register(devlink, sb_index, size, ingress_pools_count, in devlink_sb_register()
971 devl_unlock(devlink); in devlink_sb_register()
976 void devl_sb_unregister(struct devlink *devlink, unsigned int sb_index) in devl_sb_unregister() argument
980 lockdep_assert_held(&devlink->lock); in devl_sb_unregister()
982 devlink_sb = devlink_sb_get_by_index(devlink, sb_index); in devl_sb_unregister()
989 void devlink_sb_unregister(struct devlink *devlink, unsigned int sb_index) in devlink_sb_unregister() argument
991 devl_lock(devlink); in devlink_sb_unregister()
992 devl_sb_unregister(devlink, sb_index); in devlink_sb_unregister()
993 devl_unlock(devlink); in devlink_sb_unregister()