Lines Matching defs:rate_node

192 	struct devlink_rate *rate_node;
194 list_for_each_entry(rate_node, &devlink->rate_list, list)
195 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_NEW);
200 struct devlink_rate *rate_node;
202 list_for_each_entry_reverse(rate_node, &devlink->rate_list, list)
203 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_DEL);
614 struct devlink_rate *rate_node;
627 rate_node = devlink_rate_node_get_from_attrs(devlink, info->attrs);
628 if (!IS_ERR(rate_node))
630 else if (rate_node == ERR_PTR(-EINVAL))
633 rate_node = kzalloc_obj(*rate_node);
634 if (!rate_node)
637 rate_node->devlink = devlink;
638 rate_node->type = DEVLINK_RATE_TYPE_NODE;
639 rate_node->name = nla_strdup(info->attrs[DEVLINK_ATTR_RATE_NODE_NAME], GFP_KERNEL);
640 if (!rate_node->name) {
645 err = ops->rate_node_new(rate_node, &rate_node->priv, info->extack);
649 err = devlink_nl_rate_set(rate_node, ops, info);
653 refcount_set(&rate_node->refcnt, 1);
654 list_add(&rate_node->list, &devlink->rate_list);
655 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_NEW);
659 ops->rate_node_del(rate_node, rate_node->priv, info->extack);
661 kfree(rate_node->name);
663 kfree(rate_node);
670 struct devlink_rate *rate_node;
673 rate_node = devlink_rate_node_get_from_info(devlink, info);
674 if (IS_ERR(rate_node))
675 return PTR_ERR(rate_node);
677 if (refcount_read(&rate_node->refcnt) > 1) {
682 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_DEL);
683 err = devlink->ops->rate_node_del(rate_node, rate_node->priv,
685 if (rate_node->parent)
686 refcount_dec(&rate_node->parent->refcnt);
687 list_del(&rate_node->list);
688 kfree(rate_node->name);
689 kfree(rate_node);
721 struct devlink_rate *rate_node;
723 rate_node = devlink_rate_node_get_by_name(devlink, node_name);
724 if (!IS_ERR(rate_node))
727 rate_node = kzalloc_obj(*rate_node);
728 if (!rate_node)
731 rate_node->type = DEVLINK_RATE_TYPE_NODE;
732 rate_node->devlink = devlink;
733 rate_node->priv = priv;
735 rate_node->name = kstrdup(node_name, GFP_KERNEL);
736 if (!rate_node->name) {
737 kfree(rate_node);
742 rate_node->parent = parent;
743 refcount_inc(&rate_node->parent->refcnt);
746 refcount_set(&rate_node->refcnt, 1);
747 list_add(&rate_node->list, &devlink->rate_list);
748 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_NEW);
749 return rate_node;