Lines Matching full:devlink
144 struct devlink *devlink, int attrtype) in devlink_nl_put_nested_handle() argument
152 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_put_nested_handle()
156 devl_net = read_pnet_rcu(&devlink->_net); in devlink_nl_put_nested_handle()
190 struct devlink *
194 struct devlink *devlink; in devlink_get_from_attrs_lock() local
204 devlink = devlinks_xa_lookup_get(net, index); in devlink_get_from_attrs_lock()
205 if (!devlink) in devlink_get_from_attrs_lock()
219 devlink = devlinks_xa_lookup_get(net, index); in devlink_get_from_attrs_lock()
220 if (!devlink) in devlink_get_from_attrs_lock()
225 devlinks_xa_for_each_registered_get(net, index, devlink) { in devlink_get_from_attrs_lock()
226 if (strcmp(devlink_bus_name(devlink), busname) == 0 && in devlink_get_from_attrs_lock()
227 strcmp(devlink_dev_name(devlink), devname) == 0) in devlink_get_from_attrs_lock()
229 devlink_put(devlink); in devlink_get_from_attrs_lock()
235 devl_dev_lock(devlink, dev_lock); in devlink_get_from_attrs_lock()
236 if (devl_is_registered(devlink)) in devlink_get_from_attrs_lock()
237 return devlink; in devlink_get_from_attrs_lock()
238 devl_dev_unlock(devlink, dev_lock); in devlink_get_from_attrs_lock()
239 devlink_put(devlink); in devlink_get_from_attrs_lock()
243 struct devlink *
247 struct devlink *devlink; in devlink_get_parent_from_attrs_lock() local
263 devlink = devlink_get_from_attrs_lock(net, tb, false); in devlink_get_parent_from_attrs_lock()
265 return devlink; in devlink_get_parent_from_attrs_lock()
276 struct devlink *devlink, *parent_devlink = NULL; in __devlink_nl_pre_doit() local
287 /* Drop the parent devlink lock but don't release the reference. in __devlink_nl_pre_doit()
293 devlink = devlink_get_from_attrs_lock(net, attrs, dev_lock); in __devlink_nl_pre_doit()
294 if (IS_ERR(devlink)) { in __devlink_nl_pre_doit()
295 err = PTR_ERR(devlink); in __devlink_nl_pre_doit()
298 devlink_nl_ctx(info)->devlink = devlink; in __devlink_nl_pre_doit()
300 devlink_port = devlink_port_get_from_info(devlink, info); in __devlink_nl_pre_doit()
307 devlink_port = devlink_port_get_from_info(devlink, info); in __devlink_nl_pre_doit()
314 devl_dev_unlock(devlink, dev_lock); in __devlink_nl_pre_doit()
315 devlink_put(devlink); in __devlink_nl_pre_doit()
359 struct devlink *devlink; in __devlink_nl_post_doit() local
361 devlink = devlink_nl_ctx(info)->devlink; in __devlink_nl_post_doit()
362 devl_dev_unlock(devlink, dev_lock); in __devlink_nl_post_doit()
363 devlink_put(devlink); in __devlink_nl_post_doit()
394 struct devlink *devlink; in devlink_nl_inst_single_dumpit() local
397 devlink = devlink_get_from_attrs_lock(sock_net(msg->sk), attrs, false); in devlink_nl_inst_single_dumpit()
398 if (IS_ERR(devlink)) in devlink_nl_inst_single_dumpit()
399 return PTR_ERR(devlink); in devlink_nl_inst_single_dumpit()
400 err = dump_one(msg, devlink, cb, flags | NLM_F_DUMP_FILTERED); in devlink_nl_inst_single_dumpit()
402 devl_unlock(devlink); in devlink_nl_inst_single_dumpit()
403 devlink_put(devlink); in devlink_nl_inst_single_dumpit()
415 struct devlink *devlink; in devlink_nl_inst_iter_dumpit() local
418 while ((devlink = devlinks_xa_find_get(sock_net(msg->sk), in devlink_nl_inst_iter_dumpit()
420 devl_lock(devlink); in devlink_nl_inst_iter_dumpit()
422 if (devl_is_registered(devlink)) in devlink_nl_inst_iter_dumpit()
423 err = dump_one(msg, devlink, cb, flags); in devlink_nl_inst_iter_dumpit()
427 devl_unlock(devlink); in devlink_nl_inst_iter_dumpit()
428 devlink_put(devlink); in devlink_nl_inst_iter_dumpit()