Symbol: objagg_obj
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1010
struct objagg_obj *objagg_obj;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1015
objagg_obj = objagg_obj_get(erp_table->objagg, &key);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1017
if (IS_ERR(objagg_obj))
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1018
return ERR_CAST(objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1019
return (struct mlxsw_sp_acl_erp_mask *) objagg_obj;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1025
struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1029
objagg_obj_put(erp_table->objagg, objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1038
struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1039
const struct mlxsw_sp_acl_erp *erp = objagg_obj_root_priv(objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1056
struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1057
const struct mlxsw_sp_acl_erp *erp = objagg_obj_root_priv(objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1072
struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1073
const struct mlxsw_sp_acl_erp_key *key = objagg_obj_raw(objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1080
struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1081
const struct mlxsw_sp_acl_erp *erp = objagg_obj_root_priv(objagg_obj);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1146
struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask;
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
1149
delta = objagg_obj_delta_priv(objagg_obj);
include/linux/objagg.h
19
struct objagg_obj;
include/linux/objagg.h
22
const void *objagg_obj_root_priv(const struct objagg_obj *objagg_obj);
include/linux/objagg.h
23
const void *objagg_obj_delta_priv(const struct objagg_obj *objagg_obj);
include/linux/objagg.h
24
const void *objagg_obj_raw(const struct objagg_obj *objagg_obj);
include/linux/objagg.h
26
struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj);
include/linux/objagg.h
27
void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj);
include/linux/objagg.h
39
struct objagg_obj *objagg_obj; /* associated object */
include/trace/events/objagg.h
110
const struct objagg_obj *obj,
include/trace/events/objagg.h
13
struct objagg_obj;
include/trace/events/objagg.h
133
const struct objagg_obj *obj,
include/trace/events/objagg.h
134
const struct objagg_obj *parent,
include/trace/events/objagg.h
160
const struct objagg_obj *obj,
include/trace/events/objagg.h
161
const struct objagg_obj *parent,
include/trace/events/objagg.h
187
const struct objagg_obj *obj),
include/trace/events/objagg.h
207
const struct objagg_obj *obj),
include/trace/events/objagg.h
49
const struct objagg_obj *obj),
include/trace/events/objagg.h
68
const struct objagg_obj *obj),
include/trace/events/objagg.h
87
const struct objagg_obj *obj,
lib/objagg.c
103
return !objagg_obj->parent;
lib/objagg.c
118
const void *objagg_obj_root_priv(const struct objagg_obj *objagg_obj)
lib/objagg.c
120
if (objagg_obj_is_root(objagg_obj))
lib/objagg.c
121
return objagg_obj->root_priv;
lib/objagg.c
122
WARN_ON(!objagg_obj_is_root(objagg_obj->parent));
lib/objagg.c
123
return objagg_obj->parent->root_priv;
lib/objagg.c
136
const void *objagg_obj_delta_priv(const struct objagg_obj *objagg_obj)
lib/objagg.c
138
if (objagg_obj_is_root(objagg_obj))
lib/objagg.c
140
return objagg_obj->delta_priv;
lib/objagg.c
152
const void *objagg_obj_raw(const struct objagg_obj *objagg_obj)
lib/objagg.c
154
return objagg_obj->obj;
lib/objagg.c
158
static struct objagg_obj *objagg_obj_lookup(struct objagg *objagg, void *obj)
lib/objagg.c
164
struct objagg_obj *objagg_obj,
lib/objagg.c
165
struct objagg_obj *parent,
lib/objagg.c
174
objagg_obj->obj);
lib/objagg.c
181
objagg_obj->parent = parent;
lib/objagg.c
182
objagg_obj->delta_priv = delta_priv;
lib/objagg.c
184
objagg_obj_ref_inc(objagg_obj->parent);
lib/objagg.c
185
trace_objagg_obj_parent_assign(objagg, objagg_obj,
lib/objagg.c
192
struct objagg_obj *objagg_obj)
lib/objagg.c
194
struct objagg_obj *objagg_obj_cur;
lib/objagg.c
203
err = objagg_obj_parent_assign(objagg, objagg_obj,
lib/objagg.c
212
struct objagg_obj *objagg_obj);
lib/objagg.c
215
struct objagg_obj *objagg_obj)
lib/objagg.c
217
trace_objagg_obj_parent_unassign(objagg, objagg_obj,
lib/objagg.c
218
objagg_obj->parent,
lib/objagg.c
219
objagg_obj->parent->refcount);
lib/objagg.c
220
objagg->ops->delta_destroy(objagg->priv, objagg_obj->delta_priv);
lib/objagg.c
221
__objagg_obj_put(objagg, objagg_obj->parent);
lib/objagg.c
225
struct objagg_obj *objagg_obj,
lib/objagg.c
233
objagg_obj->root_id = OBJAGG_OBJ_ROOT_ID_INVALID;
lib/objagg.c
252
objagg_obj->root_id = root_id;
lib/objagg.c
257
struct objagg_obj *objagg_obj)
lib/objagg.c
261
ida_free(&objagg->root_ida, objagg_obj->root_id);
lib/objagg.c
265
struct objagg_obj *objagg_obj,
lib/objagg.c
270
err = objagg_obj_root_id_alloc(objagg, objagg_obj, hnode);
lib/objagg.c
273
objagg_obj->root_priv = objagg->ops->root_create(objagg->priv,
lib/objagg.c
274
objagg_obj->obj,
lib/objagg.c
275
objagg_obj->root_id);
lib/objagg.c
276
if (IS_ERR(objagg_obj->root_priv)) {
lib/objagg.c
277
err = PTR_ERR(objagg_obj->root_priv);
lib/objagg.c
280
trace_objagg_obj_root_create(objagg, objagg_obj);
lib/objagg.c
284
objagg_obj_root_id_free(objagg, objagg_obj);
lib/objagg.c
289
struct objagg_obj *objagg_obj)
lib/objagg.c
291
trace_objagg_obj_root_destroy(objagg, objagg_obj);
lib/objagg.c
292
objagg->ops->root_destroy(objagg->priv, objagg_obj->root_priv);
lib/objagg.c
293
objagg_obj_root_id_free(objagg, objagg_obj);
lib/objagg.c
296
static struct objagg_obj *__objagg_obj_get(struct objagg *objagg, void *obj);
lib/objagg.c
299
struct objagg_obj *objagg_obj,
lib/objagg.c
303
struct objagg_obj *parent;
lib/objagg.c
306
hnode = objagg_hints_lookup(objagg->hints, objagg_obj->obj);
lib/objagg.c
314
return objagg_obj_root_create(objagg, objagg_obj, hnode);
lib/objagg.c
320
err = objagg_obj_parent_assign(objagg, objagg_obj, parent, false);
lib/objagg.c
335
struct objagg_obj *objagg_obj)
lib/objagg.c
343
err = objagg_obj_init_with_hints(objagg, objagg_obj, &hint_found);
lib/objagg.c
351
err = objagg_obj_parent_lookup_assign(objagg, objagg_obj);
lib/objagg.c
355
return objagg_obj_root_create(objagg, objagg_obj, NULL);
lib/objagg.c
359
struct objagg_obj *objagg_obj)
lib/objagg.c
361
if (!objagg_obj_is_root(objagg_obj))
lib/objagg.c
362
objagg_obj_parent_unassign(objagg, objagg_obj);
lib/objagg.c
364
objagg_obj_root_destroy(objagg, objagg_obj);
lib/objagg.c
367
static struct objagg_obj *objagg_obj_create(struct objagg *objagg, void *obj)
lib/objagg.c
369
struct objagg_obj *objagg_obj;
lib/objagg.c
372
objagg_obj = kzalloc(sizeof(*objagg_obj) + objagg->ops->obj_size,
lib/objagg.c
374
if (!objagg_obj)
lib/objagg.c
376
objagg_obj_ref_inc(objagg_obj);
lib/objagg.c
377
memcpy(objagg_obj->obj, obj, objagg->ops->obj_size);
lib/objagg.c
379
err = objagg_obj_init(objagg, objagg_obj);
lib/objagg.c
383
err = rhashtable_insert_fast(&objagg->obj_ht, &objagg_obj->ht_node,
lib/objagg.c
387
list_add(&objagg_obj->list, &objagg->obj_list);
lib/objagg.c
389
trace_objagg_obj_create(objagg, objagg_obj);
lib/objagg.c
391
return objagg_obj;
lib/objagg.c
394
objagg_obj_fini(objagg, objagg_obj);
lib/objagg.c
396
kfree(objagg_obj);
lib/objagg.c
400
static struct objagg_obj *__objagg_obj_get(struct objagg *objagg, void *obj)
lib/objagg.c
402
struct objagg_obj *objagg_obj;
lib/objagg.c
407
objagg_obj = objagg_obj_lookup(objagg, obj);
lib/objagg.c
408
if (objagg_obj) {
lib/objagg.c
409
objagg_obj_ref_inc(objagg_obj);
lib/objagg.c
410
return objagg_obj;
lib/objagg.c
440
struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj)
lib/objagg.c
442
struct objagg_obj *objagg_obj;
lib/objagg.c
444
objagg_obj = __objagg_obj_get(objagg, obj);
lib/objagg.c
445
if (IS_ERR(objagg_obj))
lib/objagg.c
446
return objagg_obj;
lib/objagg.c
447
objagg_obj_stats_inc(objagg_obj);
lib/objagg.c
448
trace_objagg_obj_get(objagg, objagg_obj, objagg_obj->refcount);
lib/objagg.c
449
return objagg_obj;
lib/objagg.c
454
struct objagg_obj *objagg_obj)
lib/objagg.c
456
trace_objagg_obj_destroy(objagg, objagg_obj);
lib/objagg.c
458
list_del(&objagg_obj->list);
lib/objagg.c
459
rhashtable_remove_fast(&objagg->obj_ht, &objagg_obj->ht_node,
lib/objagg.c
461
objagg_obj_fini(objagg, objagg_obj);
lib/objagg.c
462
kfree(objagg_obj);
lib/objagg.c
466
struct objagg_obj *objagg_obj)
lib/objagg.c
468
if (!objagg_obj_ref_dec(objagg_obj))
lib/objagg.c
469
objagg_obj_destroy(objagg, objagg_obj);
lib/objagg.c
481
void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj)
lib/objagg.c
483
trace_objagg_obj_put(objagg, objagg_obj, objagg_obj->refcount);
lib/objagg.c
484
objagg_obj_stats_dec(objagg_obj);
lib/objagg.c
485
__objagg_obj_put(objagg, objagg_obj);
lib/objagg.c
540
objagg->ht_params.key_offset = offsetof(struct objagg_obj, obj);
lib/objagg.c
541
objagg->ht_params.head_offset = offsetof(struct objagg_obj, ht_node);
lib/objagg.c
57
struct objagg_obj *parent; /* if the object is nested, this
lib/objagg.c
610
struct objagg_obj *objagg_obj;
lib/objagg.c
619
list_for_each_entry(objagg_obj, &objagg->obj_list, list) {
lib/objagg.c
620
memcpy(&objagg_stats->stats_info[i].stats, &objagg_obj->stats,
lib/objagg.c
622
objagg_stats->stats_info[i].objagg_obj = objagg_obj;
lib/objagg.c
624
objagg_obj_is_root(objagg_obj);
lib/objagg.c
653
struct objagg_obj *objagg_obj, size_t obj_size,
lib/objagg.c
656
unsigned int user_count = objagg_obj->stats.user_count;
lib/objagg.c
663
memcpy(hnode->obj, &objagg_obj->obj, obj_size);
lib/objagg.c
672
hnode->stats_info.objagg_obj = objagg_obj;
lib/objagg.c
703
struct objagg_obj *objagg_obj;
lib/objagg.c
72
static unsigned int objagg_obj_ref_inc(struct objagg_obj *objagg_obj)
lib/objagg.c
74
return ++objagg_obj->refcount;
lib/objagg.c
741
unsigned int weight = node->objagg_obj->stats.user_count;
lib/objagg.c
754
weight += node->objagg_obj->stats.user_count;
lib/objagg.c
77
static unsigned int objagg_obj_ref_dec(struct objagg_obj *objagg_obj)
lib/objagg.c
786
struct objagg_obj *objagg_obj;
lib/objagg.c
79
return --objagg_obj->refcount;
lib/objagg.c
803
list_for_each_entry(objagg_obj, &objagg->obj_list, list) {
lib/objagg.c
805
node->objagg_obj = objagg_obj;
lib/objagg.c
818
pnode->objagg_obj->obj,
lib/objagg.c
819
node->objagg_obj->obj)) {
lib/objagg.c
82
static void objagg_obj_stats_inc(struct objagg_obj *objagg_obj)
lib/objagg.c
84
objagg_obj->stats.user_count++;
lib/objagg.c
85
objagg_obj->stats.delta_user_count++;
lib/objagg.c
86
if (objagg_obj->parent)
lib/objagg.c
863
node->objagg_obj,
lib/objagg.c
87
objagg_obj->parent->stats.delta_user_count++;
lib/objagg.c
879
node->objagg_obj,
lib/objagg.c
90
static void objagg_obj_stats_dec(struct objagg_obj *objagg_obj)
lib/objagg.c
92
objagg_obj->stats.user_count--;
lib/objagg.c
93
objagg_obj->stats.delta_user_count--;
lib/objagg.c
94
if (objagg_obj->parent)
lib/objagg.c
95
objagg_obj->parent->stats.delta_user_count--;
lib/objagg.c
98
static bool objagg_obj_is_root(const struct objagg_obj *objagg_obj)
lib/test_objagg.c
155
struct objagg_obj *objagg_obj;
lib/test_objagg.c
163
objagg_obj = world_obj_get(world, objagg, key_id);
lib/test_objagg.c
164
if (IS_ERR(objagg_obj)) {
lib/test_objagg.c
166
return PTR_ERR(objagg_obj);
lib/test_objagg.c
182
root = objagg_obj_root_priv(objagg_obj);
lib/test_objagg.c
200
objagg_obj_put(objagg, objagg_obj);
lib/test_objagg.c
33
struct objagg_obj *objagg_objs[NUM_KEYS];
lib/test_objagg.c
46
static struct objagg_obj *world_obj_get(struct world *world,
lib/test_objagg.c
50
struct objagg_obj *objagg_obj;
lib/test_objagg.c
55
objagg_obj = objagg_obj_get(objagg, &key);
lib/test_objagg.c
56
if (IS_ERR(objagg_obj)) {
lib/test_objagg.c
58
return objagg_obj;
lib/test_objagg.c
61
world->objagg_objs[key_id_index(key_id)] = objagg_obj;
lib/test_objagg.c
62
} else if (world->objagg_objs[key_id_index(key_id)] != objagg_obj) {
lib/test_objagg.c
626
static unsigned int obj_to_key_id(struct objagg_obj *objagg_obj)
lib/test_objagg.c
632
root_key = objagg_obj_root_priv(objagg_obj);
lib/test_objagg.c
634
delta = objagg_obj_delta_priv(objagg_obj);
lib/test_objagg.c
670
if (obj_to_key_id(stats_info->objagg_obj) !=
lib/test_objagg.c
69
return objagg_obj;
lib/test_objagg.c
72
objagg_obj_put(objagg, objagg_obj);
lib/test_objagg.c
766
struct objagg_obj *objagg_obj;
lib/test_objagg.c
775
objagg_obj = world_obj_get(world, objagg, key_id);
lib/test_objagg.c
776
if (IS_ERR(objagg_obj))
lib/test_objagg.c
777
return PTR_ERR(objagg_obj);
lib/test_objagg.c
79
struct objagg_obj *objagg_obj;
lib/test_objagg.c
83
objagg_obj = world->objagg_objs[key_id_index(key_id)];
lib/test_objagg.c
84
objagg_obj_put(objagg, objagg_obj);
lib/test_objagg.c
866
obj_to_key_id(stats->stats_info[i].objagg_obj),
lib/test_objagg.c
914
struct objagg_obj *objagg_obj;
lib/test_objagg.c
934
objagg_obj = world_obj_get(&world2, objagg2,
lib/test_objagg.c
936
if (IS_ERR(objagg_obj)) {
lib/test_objagg.c
937
err = PTR_ERR(objagg_obj);
lib/test_objagg.c
964
struct objagg_obj *objagg_obj;
lib/test_objagg.c
977
objagg_obj = world_obj_get(&world, objagg,
lib/test_objagg.c
979
if (IS_ERR(objagg_obj)) {
lib/test_objagg.c
980
err = PTR_ERR(objagg_obj);