Lines Matching +full:max +full:- +full:msg +full:- +full:size
1 // SPDX-License-Identifier: GPL-2.0-or-later
12 u32 size; member
21 return devlink_sb->ingress_pools_count + devlink_sb->egress_pools_count; in devlink_sb_pool_count()
29 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_sb_get_by_index()
30 if (devlink_sb->index == sb_index) in devlink_sb_get_by_index()
51 return ERR_PTR(-ENODEV); in devlink_sb_get_from_attrs()
54 return ERR_PTR(-EINVAL); in devlink_sb_get_from_attrs()
60 return devlink_sb_get_from_attrs(devlink, info->attrs); in devlink_sb_get_from_info()
70 return -EINVAL; in devlink_sb_pool_index_get_from_attrs()
74 return -EINVAL; in devlink_sb_pool_index_get_from_attrs()
83 return devlink_sb_pool_index_get_from_attrs(devlink_sb, info->attrs, in devlink_sb_pool_index_get_from_info()
94 return -EINVAL; in devlink_sb_pool_type_get_from_attrs()
99 return -EINVAL; in devlink_sb_pool_type_get_from_attrs()
108 return devlink_sb_pool_type_get_from_attrs(info->attrs, p_pool_type); in devlink_sb_pool_type_get_from_info()
118 return -EINVAL; in devlink_sb_th_type_get_from_attrs()
123 return -EINVAL; in devlink_sb_th_type_get_from_attrs()
132 return devlink_sb_th_type_get_from_attrs(info->attrs, p_th_type); in devlink_sb_th_type_get_from_info()
144 return -EINVAL; in devlink_sb_tc_index_get_from_attrs()
148 val >= devlink_sb->ingress_tc_count) in devlink_sb_tc_index_get_from_attrs()
149 return -EINVAL; in devlink_sb_tc_index_get_from_attrs()
151 val >= devlink_sb->egress_tc_count) in devlink_sb_tc_index_get_from_attrs()
152 return -EINVAL; in devlink_sb_tc_index_get_from_attrs()
163 return devlink_sb_tc_index_get_from_attrs(devlink_sb, info->attrs, in devlink_sb_tc_index_get_from_info()
167 static int devlink_nl_sb_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_fill() argument
174 hdr = genlmsg_put(msg, portid, seq, &devlink_nl_family, flags, cmd); in devlink_nl_sb_fill()
176 return -EMSGSIZE; in devlink_nl_sb_fill()
178 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_fill()
180 if (nla_put_u32(msg, DEVLINK_ATTR_SB_INDEX, devlink_sb->index)) in devlink_nl_sb_fill()
182 if (nla_put_u32(msg, DEVLINK_ATTR_SB_SIZE, devlink_sb->size)) in devlink_nl_sb_fill()
184 if (nla_put_u16(msg, DEVLINK_ATTR_SB_INGRESS_POOL_COUNT, in devlink_nl_sb_fill()
185 devlink_sb->ingress_pools_count)) in devlink_nl_sb_fill()
187 if (nla_put_u16(msg, DEVLINK_ATTR_SB_EGRESS_POOL_COUNT, in devlink_nl_sb_fill()
188 devlink_sb->egress_pools_count)) in devlink_nl_sb_fill()
190 if (nla_put_u16(msg, DEVLINK_ATTR_SB_INGRESS_TC_COUNT, in devlink_nl_sb_fill()
191 devlink_sb->ingress_tc_count)) in devlink_nl_sb_fill()
193 if (nla_put_u16(msg, DEVLINK_ATTR_SB_EGRESS_TC_COUNT, in devlink_nl_sb_fill()
194 devlink_sb->egress_tc_count)) in devlink_nl_sb_fill()
197 genlmsg_end(msg, hdr); in devlink_nl_sb_fill()
201 genlmsg_cancel(msg, hdr); in devlink_nl_sb_fill()
202 return -EMSGSIZE; in devlink_nl_sb_fill()
207 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_get_doit()
209 struct sk_buff *msg; in devlink_nl_sb_get_doit() local
216 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in devlink_nl_sb_get_doit()
217 if (!msg) in devlink_nl_sb_get_doit()
218 return -ENOMEM; in devlink_nl_sb_get_doit()
220 err = devlink_nl_sb_fill(msg, devlink, devlink_sb, in devlink_nl_sb_get_doit()
222 info->snd_portid, info->snd_seq, 0); in devlink_nl_sb_get_doit()
224 nlmsg_free(msg); in devlink_nl_sb_get_doit()
228 return genlmsg_reply(msg, info); 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()
241 if (idx < state->idx) { in devlink_nl_sb_get_dump_one()
245 err = devlink_nl_sb_fill(msg, devlink, devlink_sb, in devlink_nl_sb_get_dump_one()
247 NETLINK_CB(cb->skb).portid, in devlink_nl_sb_get_dump_one()
248 cb->nlh->nlmsg_seq, flags); in devlink_nl_sb_get_dump_one()
250 state->idx = idx; 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()
278 hdr = genlmsg_put(msg, portid, seq, &devlink_nl_family, flags, cmd); in devlink_nl_sb_pool_fill()
280 return -EMSGSIZE; in devlink_nl_sb_pool_fill()
282 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_pool_fill()
284 if (nla_put_u32(msg, DEVLINK_ATTR_SB_INDEX, devlink_sb->index)) in devlink_nl_sb_pool_fill()
286 if (nla_put_u16(msg, DEVLINK_ATTR_SB_POOL_INDEX, pool_index)) in devlink_nl_sb_pool_fill()
288 if (nla_put_u8(msg, DEVLINK_ATTR_SB_POOL_TYPE, pool_info.pool_type)) in devlink_nl_sb_pool_fill()
290 if (nla_put_u32(msg, DEVLINK_ATTR_SB_POOL_SIZE, pool_info.size)) in devlink_nl_sb_pool_fill()
292 if (nla_put_u8(msg, DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE, in devlink_nl_sb_pool_fill()
295 if (nla_put_u32(msg, DEVLINK_ATTR_SB_POOL_CELL_SIZE, in devlink_nl_sb_pool_fill()
299 genlmsg_end(msg, hdr); in devlink_nl_sb_pool_fill()
303 genlmsg_cancel(msg, hdr); in devlink_nl_sb_pool_fill()
304 return -EMSGSIZE; in devlink_nl_sb_pool_fill()
309 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_pool_get_doit()
311 struct sk_buff *msg; in devlink_nl_sb_pool_get_doit() local
324 if (!devlink->ops->sb_pool_get) in devlink_nl_sb_pool_get_doit()
325 return -EOPNOTSUPP; in devlink_nl_sb_pool_get_doit()
327 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in devlink_nl_sb_pool_get_doit()
328 if (!msg) in devlink_nl_sb_pool_get_doit()
329 return -ENOMEM; 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()
333 info->snd_portid, info->snd_seq, 0); in devlink_nl_sb_pool_get_doit()
335 nlmsg_free(msg); in devlink_nl_sb_pool_get_doit()
339 return genlmsg_reply(msg, info); in devlink_nl_sb_pool_get_doit()
342 static int __sb_pool_get_dumpit(struct sk_buff *msg, int start, int *p_idx, 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()
381 err = __sb_pool_get_dumpit(msg, state->idx, &idx, in devlink_nl_sb_pool_get_dump_one()
383 NETLINK_CB(cb->skb).portid, in devlink_nl_sb_pool_get_dump_one()
384 cb->nlh->nlmsg_seq, flags); in devlink_nl_sb_pool_get_dump_one()
385 if (err == -EOPNOTSUPP) { in devlink_nl_sb_pool_get_dump_one()
388 state->idx = idx; in devlink_nl_sb_pool_get_dump_one()
403 u16 pool_index, u32 size, in devlink_sb_pool_set() argument
408 const struct devlink_ops *ops = devlink->ops; in devlink_sb_pool_set()
410 if (ops->sb_pool_set) in devlink_sb_pool_set()
411 return ops->sb_pool_set(devlink, sb_index, pool_index, in devlink_sb_pool_set()
412 size, threshold_type, extack); in devlink_sb_pool_set()
413 return -EOPNOTSUPP; in devlink_sb_pool_set()
418 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_pool_set_doit()
422 u32 size; in devlink_nl_sb_pool_set_doit() local
439 return -EINVAL; in devlink_nl_sb_pool_set_doit()
441 size = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_POOL_SIZE]); in devlink_nl_sb_pool_set_doit()
442 return devlink_sb_pool_set(devlink, devlink_sb->index, in devlink_nl_sb_pool_set_doit()
443 pool_index, size, threshold_type, in devlink_nl_sb_pool_set_doit()
444 info->extack); in devlink_nl_sb_pool_set_doit()
447 static int devlink_nl_sb_port_pool_fill(struct sk_buff *msg, in devlink_nl_sb_port_pool_fill() argument
455 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_port_pool_fill()
460 err = ops->sb_port_pool_get(devlink_port, devlink_sb->index, in devlink_nl_sb_port_pool_fill()
465 hdr = genlmsg_put(msg, portid, seq, &devlink_nl_family, flags, cmd); in devlink_nl_sb_port_pool_fill()
467 return -EMSGSIZE; in devlink_nl_sb_port_pool_fill()
469 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_port_pool_fill()
471 if (nla_put_u32(msg, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) in devlink_nl_sb_port_pool_fill()
473 if (nla_put_u32(msg, DEVLINK_ATTR_SB_INDEX, devlink_sb->index)) in devlink_nl_sb_port_pool_fill()
475 if (nla_put_u16(msg, DEVLINK_ATTR_SB_POOL_INDEX, pool_index)) in devlink_nl_sb_port_pool_fill()
477 if (nla_put_u32(msg, DEVLINK_ATTR_SB_THRESHOLD, threshold)) in devlink_nl_sb_port_pool_fill()
480 if (ops->sb_occ_port_pool_get) { in devlink_nl_sb_port_pool_fill()
482 u32 max; in devlink_nl_sb_port_pool_fill() local
484 err = ops->sb_occ_port_pool_get(devlink_port, devlink_sb->index, in devlink_nl_sb_port_pool_fill()
485 pool_index, &cur, &max); in devlink_nl_sb_port_pool_fill()
486 if (err && err != -EOPNOTSUPP) in devlink_nl_sb_port_pool_fill()
489 if (nla_put_u32(msg, DEVLINK_ATTR_SB_OCC_CUR, cur)) in devlink_nl_sb_port_pool_fill()
491 if (nla_put_u32(msg, DEVLINK_ATTR_SB_OCC_MAX, max)) in devlink_nl_sb_port_pool_fill()
496 genlmsg_end(msg, hdr); in devlink_nl_sb_port_pool_fill()
500 err = -EMSGSIZE; in devlink_nl_sb_port_pool_fill()
502 genlmsg_cancel(msg, hdr); in devlink_nl_sb_port_pool_fill()
509 struct devlink_port *devlink_port = info->user_ptr[1]; in devlink_nl_sb_port_pool_get_doit()
510 struct devlink *devlink = devlink_port->devlink; in devlink_nl_sb_port_pool_get_doit()
512 struct sk_buff *msg; in devlink_nl_sb_port_pool_get_doit() local
525 if (!devlink->ops->sb_port_pool_get) in devlink_nl_sb_port_pool_get_doit()
526 return -EOPNOTSUPP; in devlink_nl_sb_port_pool_get_doit()
528 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in devlink_nl_sb_port_pool_get_doit()
529 if (!msg) in devlink_nl_sb_port_pool_get_doit()
530 return -ENOMEM; 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()
535 info->snd_portid, info->snd_seq, 0); in devlink_nl_sb_port_pool_get_doit()
537 nlmsg_free(msg); in devlink_nl_sb_port_pool_get_doit()
541 return genlmsg_reply(msg, info); in devlink_nl_sb_port_pool_get_doit()
544 static int __sb_port_pool_get_dumpit(struct sk_buff *msg, int start, int *p_idx, 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()
576 devlink_nl_sb_port_pool_get_dump_one(struct sk_buff *msg, 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()
589 err = __sb_port_pool_get_dumpit(msg, state->idx, &idx, in devlink_nl_sb_port_pool_get_dump_one()
591 NETLINK_CB(cb->skb).portid, in devlink_nl_sb_port_pool_get_dump_one()
592 cb->nlh->nlmsg_seq, flags); in devlink_nl_sb_port_pool_get_dump_one()
593 if (err == -EOPNOTSUPP) { in devlink_nl_sb_port_pool_get_dump_one()
596 state->idx = idx; 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()
618 if (ops->sb_port_pool_set) in devlink_sb_port_pool_set()
619 return ops->sb_port_pool_set(devlink_port, sb_index, in devlink_sb_port_pool_set()
621 return -EOPNOTSUPP; in devlink_sb_port_pool_set()
627 struct devlink_port *devlink_port = info->user_ptr[1]; in devlink_nl_sb_port_pool_set_doit()
628 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_port_pool_set_doit()
644 return -EINVAL; in devlink_nl_sb_port_pool_set_doit()
646 threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]); in devlink_nl_sb_port_pool_set_doit()
647 return devlink_sb_port_pool_set(devlink_port, devlink_sb->index, in devlink_nl_sb_port_pool_set_doit()
648 pool_index, threshold, info->extack); 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()
665 err = ops->sb_tc_pool_bind_get(devlink_port, devlink_sb->index, in devlink_nl_sb_tc_pool_bind_fill()
671 hdr = genlmsg_put(msg, portid, seq, &devlink_nl_family, flags, cmd); in devlink_nl_sb_tc_pool_bind_fill()
673 return -EMSGSIZE; in devlink_nl_sb_tc_pool_bind_fill()
675 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_tc_pool_bind_fill()
677 if (nla_put_u32(msg, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) in devlink_nl_sb_tc_pool_bind_fill()
679 if (nla_put_u32(msg, DEVLINK_ATTR_SB_INDEX, devlink_sb->index)) in devlink_nl_sb_tc_pool_bind_fill()
681 if (nla_put_u16(msg, DEVLINK_ATTR_SB_TC_INDEX, tc_index)) in devlink_nl_sb_tc_pool_bind_fill()
683 if (nla_put_u8(msg, DEVLINK_ATTR_SB_POOL_TYPE, pool_type)) in devlink_nl_sb_tc_pool_bind_fill()
685 if (nla_put_u16(msg, DEVLINK_ATTR_SB_POOL_INDEX, pool_index)) in devlink_nl_sb_tc_pool_bind_fill()
687 if (nla_put_u32(msg, DEVLINK_ATTR_SB_THRESHOLD, threshold)) in devlink_nl_sb_tc_pool_bind_fill()
690 if (ops->sb_occ_tc_port_bind_get) { in devlink_nl_sb_tc_pool_bind_fill()
692 u32 max; in devlink_nl_sb_tc_pool_bind_fill() local
694 err = ops->sb_occ_tc_port_bind_get(devlink_port, in devlink_nl_sb_tc_pool_bind_fill()
695 devlink_sb->index, in devlink_nl_sb_tc_pool_bind_fill()
697 &cur, &max); in devlink_nl_sb_tc_pool_bind_fill()
698 if (err && err != -EOPNOTSUPP) in devlink_nl_sb_tc_pool_bind_fill()
701 if (nla_put_u32(msg, DEVLINK_ATTR_SB_OCC_CUR, cur)) in devlink_nl_sb_tc_pool_bind_fill()
703 if (nla_put_u32(msg, DEVLINK_ATTR_SB_OCC_MAX, max)) in devlink_nl_sb_tc_pool_bind_fill()
708 genlmsg_end(msg, hdr); in devlink_nl_sb_tc_pool_bind_fill()
712 genlmsg_cancel(msg, hdr); in devlink_nl_sb_tc_pool_bind_fill()
713 return -EMSGSIZE; in devlink_nl_sb_tc_pool_bind_fill()
719 struct devlink_port *devlink_port = info->user_ptr[1]; in devlink_nl_sb_tc_pool_bind_get_doit()
720 struct devlink *devlink = devlink_port->devlink; in devlink_nl_sb_tc_pool_bind_get_doit()
722 struct sk_buff *msg; in devlink_nl_sb_tc_pool_bind_get_doit() local
740 if (!devlink->ops->sb_tc_pool_bind_get) in devlink_nl_sb_tc_pool_bind_get_doit()
741 return -EOPNOTSUPP; in devlink_nl_sb_tc_pool_bind_get_doit()
743 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in devlink_nl_sb_tc_pool_bind_get_doit()
744 if (!msg) in devlink_nl_sb_tc_pool_bind_get_doit()
745 return -ENOMEM; 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()
750 info->snd_portid, in devlink_nl_sb_tc_pool_bind_get_doit()
751 info->snd_seq, 0); in devlink_nl_sb_tc_pool_bind_get_doit()
753 nlmsg_free(msg); in devlink_nl_sb_tc_pool_bind_get_doit()
757 return genlmsg_reply(msg, info); in devlink_nl_sb_tc_pool_bind_get_doit()
760 static int __sb_tc_pool_bind_get_dumpit(struct sk_buff *msg, 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()
773 tc_index < devlink_sb->ingress_tc_count; tc_index++) { 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()
791 tc_index < devlink_sb->egress_tc_count; tc_index++) { 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()
812 static int devlink_nl_sb_tc_pool_bind_get_dump_one(struct sk_buff *msg, 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()
826 err = __sb_tc_pool_bind_get_dumpit(msg, state->idx, &idx, in devlink_nl_sb_tc_pool_bind_get_dump_one()
828 NETLINK_CB(cb->skb).portid, in devlink_nl_sb_tc_pool_bind_get_dump_one()
829 cb->nlh->nlmsg_seq, flags); in devlink_nl_sb_tc_pool_bind_get_dump_one()
830 if (err == -EOPNOTSUPP) { in devlink_nl_sb_tc_pool_bind_get_dump_one()
833 state->idx = idx; 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()
857 if (ops->sb_tc_pool_bind_set) in devlink_sb_tc_pool_bind_set()
858 return ops->sb_tc_pool_bind_set(devlink_port, sb_index, in devlink_sb_tc_pool_bind_set()
861 return -EOPNOTSUPP; in devlink_sb_tc_pool_bind_set()
867 struct devlink_port *devlink_port = info->user_ptr[1]; in devlink_nl_sb_tc_pool_bind_set_doit()
868 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_tc_pool_bind_set_doit()
895 return -EINVAL; in devlink_nl_sb_tc_pool_bind_set_doit()
897 threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]); in devlink_nl_sb_tc_pool_bind_set_doit()
898 return devlink_sb_tc_pool_bind_set(devlink_port, devlink_sb->index, in devlink_nl_sb_tc_pool_bind_set_doit()
900 pool_index, threshold, info->extack); in devlink_nl_sb_tc_pool_bind_set_doit()
905 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_occ_snapshot_doit()
906 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_occ_snapshot_doit()
913 if (ops->sb_occ_snapshot) in devlink_nl_sb_occ_snapshot_doit()
914 return ops->sb_occ_snapshot(devlink, devlink_sb->index); in devlink_nl_sb_occ_snapshot_doit()
915 return -EOPNOTSUPP; in devlink_nl_sb_occ_snapshot_doit()
921 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_sb_occ_max_clear_doit()
922 const struct devlink_ops *ops = devlink->ops; in devlink_nl_sb_occ_max_clear_doit()
929 if (ops->sb_occ_max_clear) 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()
931 return -EOPNOTSUPP; in devlink_nl_sb_occ_max_clear_doit()
935 u32 size, u16 ingress_pools_count, in devl_sb_register() argument
941 lockdep_assert_held(&devlink->lock); in devl_sb_register()
944 return -EEXIST; in devl_sb_register()
948 return -ENOMEM; in devl_sb_register()
949 devlink_sb->index = sb_index; in devl_sb_register()
950 devlink_sb->size = size; in devl_sb_register()
951 devlink_sb->ingress_pools_count = ingress_pools_count; in devl_sb_register()
952 devlink_sb->egress_pools_count = egress_pools_count; in devl_sb_register()
953 devlink_sb->ingress_tc_count = ingress_tc_count; in devl_sb_register()
954 devlink_sb->egress_tc_count = egress_tc_count; in devl_sb_register()
955 list_add_tail(&devlink_sb->list, &devlink->sb_list); in devl_sb_register()
961 u32 size, u16 ingress_pools_count, in devlink_sb_register() argument
968 err = devl_sb_register(devlink, sb_index, size, ingress_pools_count, in devlink_sb_register()
980 lockdep_assert_held(&devlink->lock); in devl_sb_unregister()
984 list_del(&devlink_sb->list); in devl_sb_unregister()