Lines Matching refs:devlink
10 struct devlink *devlink; member
35 devlink_region_get_by_name(struct devlink *devlink, const char *region_name) in devlink_region_get_by_name() argument
39 list_for_each_entry(region, &devlink->region_list, list) in devlink_region_get_by_name()
72 struct devlink *devlink, in devlink_nl_region_snapshot_id_put() argument
95 struct devlink *devlink, in devlink_nl_region_snapshots_id_put() argument
108 err = devlink_nl_region_snapshot_id_put(msg, devlink, snapshot); in devlink_nl_region_snapshots_id_put()
121 static int devlink_nl_region_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_region_fill() argument
133 err = devlink_nl_put_handle(msg, devlink); in devlink_nl_region_fill()
157 err = devlink_nl_region_snapshots_id_put(msg, devlink, region); in devlink_nl_region_fill()
174 struct devlink *devlink = region->devlink; in devlink_nl_region_notify_build() local
189 err = devlink_nl_put_handle(msg, devlink); in devlink_nl_region_notify_build()
231 struct devlink *devlink = region->devlink; in devlink_nl_region_notify() local
236 if (!__devl_is_registered(devlink) || !devlink_nl_notify_need(devlink)) in devlink_nl_region_notify()
243 devlink_nl_notify_send(devlink, msg); in devlink_nl_region_notify()
246 void devlink_regions_notify_register(struct devlink *devlink) in devlink_regions_notify_register() argument
250 list_for_each_entry(region, &devlink->region_list, list) in devlink_regions_notify_register()
254 void devlink_regions_notify_unregister(struct devlink *devlink) in devlink_regions_notify_unregister() argument
258 list_for_each_entry_reverse(region, &devlink->region_list, list) in devlink_regions_notify_unregister()
277 static int __devlink_snapshot_id_increment(struct devlink *devlink, u32 id) in __devlink_snapshot_id_increment() argument
283 xa_lock(&devlink->snapshot_ids); in __devlink_snapshot_id_increment()
284 p = xa_load(&devlink->snapshot_ids, id); in __devlink_snapshot_id_increment()
298 err = xa_err(__xa_store(&devlink->snapshot_ids, id, xa_mk_value(count), in __devlink_snapshot_id_increment()
301 xa_unlock(&devlink->snapshot_ids); in __devlink_snapshot_id_increment()
320 static void __devlink_snapshot_id_decrement(struct devlink *devlink, u32 id) in __devlink_snapshot_id_decrement() argument
325 xa_lock(&devlink->snapshot_ids); in __devlink_snapshot_id_decrement()
326 p = xa_load(&devlink->snapshot_ids, id); in __devlink_snapshot_id_decrement()
337 __xa_store(&devlink->snapshot_ids, id, xa_mk_value(count), in __devlink_snapshot_id_decrement()
341 __xa_erase(&devlink->snapshot_ids, id); in __devlink_snapshot_id_decrement()
344 xa_unlock(&devlink->snapshot_ids); in __devlink_snapshot_id_decrement()
363 static int __devlink_snapshot_id_insert(struct devlink *devlink, u32 id) in __devlink_snapshot_id_insert() argument
367 xa_lock(&devlink->snapshot_ids); in __devlink_snapshot_id_insert()
368 if (xa_load(&devlink->snapshot_ids, id)) { in __devlink_snapshot_id_insert()
369 xa_unlock(&devlink->snapshot_ids); in __devlink_snapshot_id_insert()
372 err = xa_err(__xa_store(&devlink->snapshot_ids, id, xa_mk_value(0), in __devlink_snapshot_id_insert()
374 xa_unlock(&devlink->snapshot_ids); in __devlink_snapshot_id_insert()
394 static int __devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id) in __devlink_region_snapshot_id_get() argument
396 return xa_alloc(&devlink->snapshot_ids, id, xa_mk_value(1), in __devlink_region_snapshot_id_get()
418 struct devlink *devlink = region->devlink; in __devlink_region_snapshot_create() local
435 err = __devlink_snapshot_id_increment(devlink, snapshot_id); in __devlink_region_snapshot_create()
458 struct devlink *devlink = region->devlink; in devlink_region_snapshot_del() local
466 __devlink_snapshot_id_decrement(devlink, snapshot->id); in devlink_region_snapshot_del()
472 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_region_get_doit() local
486 port = devlink_port_get_by_index(devlink, index); in devlink_nl_region_get_doit()
495 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_region_get_doit()
504 err = devlink_nl_region_fill(msg, devlink, DEVLINK_CMD_REGION_GET, in devlink_nl_region_get_doit()
528 err = devlink_nl_region_fill(msg, port->devlink, in devlink_nl_cmd_region_get_port_dumpit()
543 struct devlink *devlink, in devlink_nl_region_get_dump_one() argument
554 list_for_each_entry(region, &devlink->region_list, list) { in devlink_nl_region_get_dump_one()
559 err = devlink_nl_region_fill(msg, devlink, in devlink_nl_region_get_dump_one()
571 xa_for_each(&devlink->ports, port_index, port) { in devlink_nl_region_get_dump_one()
591 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_region_del_doit() local
609 port = devlink_port_get_by_index(devlink, index); in devlink_nl_region_del_doit()
617 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_region_del_doit()
636 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_region_new_doit() local
657 port = devlink_port_get_by_index(devlink, index); in devlink_nl_region_new_doit()
665 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_region_new_doit()
695 err = __devlink_snapshot_id_insert(devlink, snapshot_id); in devlink_nl_region_new_doit()
699 err = __devlink_region_snapshot_id_get(devlink, &snapshot_id); in devlink_nl_region_new_doit()
710 err = region->ops->snapshot(devlink, region->ops, in devlink_nl_region_new_doit()
748 __devlink_snapshot_id_decrement(devlink, snapshot_id); in devlink_nl_region_new_doit()
859 return region->ops->read(region->devlink, region->ops, extack, in devlink_region_direct_fill()
875 struct devlink *devlink; in devlink_nl_region_read_dumpit() local
883 devlink = devlink_get_from_attrs_lock(sock_net(cb->skb->sk), attrs, in devlink_nl_region_read_dumpit()
885 if (IS_ERR(devlink)) in devlink_nl_region_read_dumpit()
886 return PTR_ERR(devlink); in devlink_nl_region_read_dumpit()
897 port = devlink_port_get_by_index(devlink, index); in devlink_nl_region_read_dumpit()
910 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_region_read_dumpit()
985 err = devlink_nl_put_handle(skb, devlink); in devlink_nl_region_read_dumpit()
1023 devl_unlock(devlink); in devlink_nl_region_read_dumpit()
1024 devlink_put(devlink); in devlink_nl_region_read_dumpit()
1030 devl_unlock(devlink); in devlink_nl_region_read_dumpit()
1031 devlink_put(devlink); in devlink_nl_region_read_dumpit()
1043 struct devlink_region *devl_region_create(struct devlink *devlink, in devl_region_create() argument
1050 devl_assert_locked(devlink); in devl_region_create()
1055 if (devlink_region_get_by_name(devlink, ops->name)) in devl_region_create()
1062 region->devlink = devlink; in devl_region_create()
1068 list_add_tail(®ion->list, &devlink->region_list); in devl_region_create()
1086 devlink_region_create(struct devlink *devlink, in devlink_region_create() argument
1092 devl_lock(devlink); in devlink_region_create()
1093 region = devl_region_create(devlink, ops, region_max_snapshots, in devlink_region_create()
1095 devl_unlock(devlink); in devlink_region_create()
1115 struct devlink *devlink = port->devlink; in devlink_port_region_create() local
1124 devl_lock(devlink); in devlink_port_region_create()
1137 region->devlink = devlink; in devlink_port_region_create()
1147 devl_unlock(devlink); in devlink_port_region_create()
1151 devl_unlock(devlink); in devlink_port_region_create()
1163 struct devlink *devlink = region->devlink; in devl_region_destroy() local
1166 devl_assert_locked(devlink); in devl_region_destroy()
1191 struct devlink *devlink = region->devlink; in devlink_region_destroy() local
1193 devl_lock(devlink); in devlink_region_destroy()
1195 devl_unlock(devlink); in devlink_region_destroy()
1214 int devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id) in devlink_region_snapshot_id_get() argument
1216 return __devlink_region_snapshot_id_get(devlink, id); in devlink_region_snapshot_id_get()
1230 void devlink_region_snapshot_id_put(struct devlink *devlink, u32 id) in devlink_region_snapshot_id_put() argument
1232 __devlink_snapshot_id_decrement(devlink, id); in devlink_region_snapshot_id_put()