Lines Matching refs:rate_node

607 		struct devlink_rate *rate_node;  in devlink_nl_pre_doit()  local
609 rate_node = devlink_rate_node_get_from_info(devlink, info); in devlink_nl_pre_doit()
610 if (IS_ERR(rate_node)) { in devlink_nl_pre_doit()
611 err = PTR_ERR(rate_node); in devlink_nl_pre_doit()
614 info->user_ptr[1] = rate_node; in devlink_nl_pre_doit()
1859 struct devlink_rate *rate_node; in devlink_nl_cmd_rate_new_doit() local
1872 rate_node = devlink_rate_node_get_from_attrs(devlink, info->attrs); in devlink_nl_cmd_rate_new_doit()
1873 if (!IS_ERR(rate_node)) in devlink_nl_cmd_rate_new_doit()
1875 else if (rate_node == ERR_PTR(-EINVAL)) in devlink_nl_cmd_rate_new_doit()
1878 rate_node = kzalloc(sizeof(*rate_node), GFP_KERNEL); in devlink_nl_cmd_rate_new_doit()
1879 if (!rate_node) in devlink_nl_cmd_rate_new_doit()
1882 rate_node->devlink = devlink; in devlink_nl_cmd_rate_new_doit()
1883 rate_node->type = DEVLINK_RATE_TYPE_NODE; in devlink_nl_cmd_rate_new_doit()
1884 rate_node->name = nla_strdup(info->attrs[DEVLINK_ATTR_RATE_NODE_NAME], GFP_KERNEL); in devlink_nl_cmd_rate_new_doit()
1885 if (!rate_node->name) { in devlink_nl_cmd_rate_new_doit()
1890 err = ops->rate_node_new(rate_node, &rate_node->priv, info->extack); in devlink_nl_cmd_rate_new_doit()
1894 err = devlink_nl_rate_set(rate_node, ops, info); in devlink_nl_cmd_rate_new_doit()
1898 refcount_set(&rate_node->refcnt, 1); in devlink_nl_cmd_rate_new_doit()
1899 list_add(&rate_node->list, &devlink->rate_list); in devlink_nl_cmd_rate_new_doit()
1900 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_NEW); in devlink_nl_cmd_rate_new_doit()
1904 ops->rate_node_del(rate_node, rate_node->priv, info->extack); in devlink_nl_cmd_rate_new_doit()
1906 kfree(rate_node->name); in devlink_nl_cmd_rate_new_doit()
1908 kfree(rate_node); in devlink_nl_cmd_rate_new_doit()
1915 struct devlink_rate *rate_node = info->user_ptr[1]; in devlink_nl_cmd_rate_del_doit() local
1916 struct devlink *devlink = rate_node->devlink; in devlink_nl_cmd_rate_del_doit()
1920 if (refcount_read(&rate_node->refcnt) > 1) { in devlink_nl_cmd_rate_del_doit()
1925 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_DEL); in devlink_nl_cmd_rate_del_doit()
1926 err = ops->rate_node_del(rate_node, rate_node->priv, info->extack); in devlink_nl_cmd_rate_del_doit()
1927 if (rate_node->parent) in devlink_nl_cmd_rate_del_doit()
1928 refcount_dec(&rate_node->parent->refcnt); in devlink_nl_cmd_rate_del_doit()
1929 list_del(&rate_node->list); in devlink_nl_cmd_rate_del_doit()
1930 kfree(rate_node->name); in devlink_nl_cmd_rate_del_doit()
1931 kfree(rate_node); in devlink_nl_cmd_rate_del_doit()
9044 struct devlink_rate *rate_node; in devlink_notify_register() local
9062 list_for_each_entry(rate_node, &devlink->rate_list, list) in devlink_notify_register()
9063 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_NEW); in devlink_notify_register()
9080 struct devlink_rate *rate_node; in devlink_notify_unregister() local
9090 list_for_each_entry_reverse(rate_node, &devlink->rate_list, list) in devlink_notify_unregister()
9091 devlink_rate_notify(rate_node, DEVLINK_CMD_RATE_DEL); in devlink_notify_unregister()