Lines Matching refs:region
347 struct devlink_region *region; member
356 struct devlink_region *region; in devlink_region_get_by_name() local
358 list_for_each_entry(region, &devlink->region_list, list) in devlink_region_get_by_name()
359 if (!strcmp(region->name, region_name)) in devlink_region_get_by_name()
360 return region; in devlink_region_get_by_name()
366 devlink_region_snapshot_get_by_id(struct devlink_region *region, u32 id) in devlink_region_snapshot_get_by_id() argument
370 list_for_each_entry(snapshot, ®ion->snapshot_list, list) in devlink_region_snapshot_get_by_id()
3529 struct devlink_region *region) in devlink_nl_region_snapshots_id_put() argument
3540 list_for_each_entry(snapshot, ®ion->snapshot_list, list) { in devlink_nl_region_snapshots_id_put()
3557 struct devlink_region *region) in devlink_nl_region_fill() argument
3570 err = nla_put_string(msg, DEVLINK_ATTR_REGION_NAME, region->name); in devlink_nl_region_fill()
3575 region->size, in devlink_nl_region_fill()
3580 err = devlink_nl_region_snapshots_id_put(msg, devlink, region); in devlink_nl_region_fill()
3592 static void devlink_nl_region_notify(struct devlink_region *region, in devlink_nl_region_notify() argument
3596 struct devlink *devlink = region->devlink; in devlink_nl_region_notify()
3616 region->name); in devlink_nl_region_notify()
3627 region->size, DEVLINK_ATTR_PAD); in devlink_nl_region_notify()
3644 static void devlink_region_snapshot_del(struct devlink_region *region, in devlink_region_snapshot_del() argument
3647 devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_DEL); in devlink_region_snapshot_del()
3648 region->cur_snapshots--; in devlink_region_snapshot_del()
3658 struct devlink_region *region; in devlink_nl_cmd_region_get_doit() local
3667 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_cmd_region_get_doit()
3668 if (!region) in devlink_nl_cmd_region_get_doit()
3677 region); in devlink_nl_cmd_region_get_doit()
3689 struct devlink_region *region; in devlink_nl_cmd_region_get_dumpit() local
3701 list_for_each_entry(region, &devlink->region_list, list) { in devlink_nl_cmd_region_get_dumpit()
3710 NLM_F_MULTI, region); in devlink_nl_cmd_region_get_dumpit()
3730 struct devlink_region *region; in devlink_nl_cmd_region_del() local
3741 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_cmd_region_del()
3742 if (!region) in devlink_nl_cmd_region_del()
3745 snapshot = devlink_region_snapshot_get_by_id(region, snapshot_id); in devlink_nl_cmd_region_del()
3749 devlink_region_snapshot_del(region, snapshot); in devlink_nl_cmd_region_del()
3786 struct devlink_region *region, in devlink_nl_region_read_snapshot_fill() argument
3801 snapshot = devlink_region_snapshot_get_by_id(region, snapshot_id); in devlink_nl_region_read_snapshot_fill()
3805 if (end_offset > region->size || dump) in devlink_nl_region_read_snapshot_fill()
3806 end_offset = region->size; in devlink_nl_region_read_snapshot_fill()
3835 struct devlink_region *region; in devlink_nl_cmd_region_read_dumpit() local
3873 region = devlink_region_get_by_name(devlink, region_name); in devlink_nl_cmd_region_read_dumpit()
3874 if (!region) { in devlink_nl_cmd_region_read_dumpit()
3880 if (start_offset >= region->size) { in devlink_nl_cmd_region_read_dumpit()
3924 region, attrs, in devlink_nl_cmd_region_read_dumpit()
7414 struct devlink_region *region; in devlink_region_create() local
7424 region = kzalloc(sizeof(*region), GFP_KERNEL); in devlink_region_create()
7425 if (!region) { in devlink_region_create()
7430 region->devlink = devlink; in devlink_region_create()
7431 region->max_snapshots = region_max_snapshots; in devlink_region_create()
7432 region->name = region_name; in devlink_region_create()
7433 region->size = region_size; in devlink_region_create()
7434 INIT_LIST_HEAD(®ion->snapshot_list); in devlink_region_create()
7435 list_add_tail(®ion->list, &devlink->region_list); in devlink_region_create()
7436 devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_NEW); in devlink_region_create()
7439 return region; in devlink_region_create()
7452 void devlink_region_destroy(struct devlink_region *region) in devlink_region_destroy() argument
7454 struct devlink *devlink = region->devlink; in devlink_region_destroy()
7460 list_for_each_entry_safe(snapshot, ts, ®ion->snapshot_list, list) in devlink_region_destroy()
7461 devlink_region_snapshot_del(region, snapshot); in devlink_region_destroy()
7463 list_del(®ion->list); in devlink_region_destroy()
7465 devlink_nl_region_notify(region, NULL, DEVLINK_CMD_REGION_DEL); in devlink_region_destroy()
7467 kfree(region); in devlink_region_destroy()
7505 int devlink_region_snapshot_create(struct devlink_region *region, in devlink_region_snapshot_create() argument
7509 struct devlink *devlink = region->devlink; in devlink_region_snapshot_create()
7516 if (region->cur_snapshots == region->max_snapshots) { in devlink_region_snapshot_create()
7521 if (devlink_region_snapshot_get_by_id(region, snapshot_id)) { in devlink_region_snapshot_create()
7533 snapshot->region = region; in devlink_region_snapshot_create()
7537 list_add_tail(&snapshot->list, ®ion->snapshot_list); in devlink_region_snapshot_create()
7539 region->cur_snapshots++; in devlink_region_snapshot_create()
7541 devlink_nl_region_notify(region, snapshot, DEVLINK_CMD_REGION_NEW); in devlink_region_snapshot_create()