objagg_obj 1008 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj; objagg_obj 1013 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c objagg_obj = objagg_obj_get(erp_table->objagg, &key); objagg_obj 1015 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c if (IS_ERR(objagg_obj)) objagg_obj 1016 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c return ERR_CAST(objagg_obj); objagg_obj 1017 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c return (struct mlxsw_sp_acl_erp_mask *) objagg_obj; objagg_obj 1023 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask; objagg_obj 1027 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c objagg_obj_put(erp_table->objagg, objagg_obj); objagg_obj 1036 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask; objagg_obj 1037 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c const struct mlxsw_sp_acl_erp *erp = objagg_obj_root_priv(objagg_obj); objagg_obj 1054 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask; objagg_obj 1055 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c const struct mlxsw_sp_acl_erp *erp = objagg_obj_root_priv(objagg_obj); objagg_obj 1070 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask; objagg_obj 1071 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c const struct mlxsw_sp_acl_erp_key *key = objagg_obj_raw(objagg_obj); objagg_obj 1078 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask; objagg_obj 1079 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c const struct mlxsw_sp_acl_erp *erp = objagg_obj_root_priv(objagg_obj); objagg_obj 1144 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c struct objagg_obj *objagg_obj = (struct objagg_obj *) erp_mask; objagg_obj 1147 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c delta = objagg_obj_delta_priv(objagg_obj); objagg_obj 20 include/linux/objagg.h struct objagg_obj; objagg_obj 23 include/linux/objagg.h const void *objagg_obj_root_priv(const struct objagg_obj *objagg_obj); objagg_obj 24 include/linux/objagg.h const void *objagg_obj_delta_priv(const struct objagg_obj *objagg_obj); objagg_obj 25 include/linux/objagg.h const void *objagg_obj_raw(const struct objagg_obj *objagg_obj); objagg_obj 27 include/linux/objagg.h struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj); objagg_obj 28 include/linux/objagg.h void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj); objagg_obj 40 include/linux/objagg.h struct objagg_obj *objagg_obj; /* associated object */ objagg_obj 13 include/trace/events/objagg.h struct objagg_obj; objagg_obj 49 include/trace/events/objagg.h const struct objagg_obj *obj), objagg_obj 68 include/trace/events/objagg.h const struct objagg_obj *obj), objagg_obj 87 include/trace/events/objagg.h const struct objagg_obj *obj, objagg_obj 110 include/trace/events/objagg.h const struct objagg_obj *obj, objagg_obj 133 include/trace/events/objagg.h const struct objagg_obj *obj, objagg_obj 134 include/trace/events/objagg.h const struct objagg_obj *parent, objagg_obj 160 include/trace/events/objagg.h const struct objagg_obj *obj, objagg_obj 161 include/trace/events/objagg.h const struct objagg_obj *parent, objagg_obj 187 include/trace/events/objagg.h const struct objagg_obj *obj), objagg_obj 207 include/trace/events/objagg.h const struct objagg_obj *obj), objagg_obj 57 lib/objagg.c struct objagg_obj *parent; /* if the object is nested, this objagg_obj 72 lib/objagg.c static unsigned int objagg_obj_ref_inc(struct objagg_obj *objagg_obj) objagg_obj 74 lib/objagg.c return ++objagg_obj->refcount; objagg_obj 77 lib/objagg.c static unsigned int objagg_obj_ref_dec(struct objagg_obj *objagg_obj) objagg_obj 79 lib/objagg.c return --objagg_obj->refcount; objagg_obj 82 lib/objagg.c static void objagg_obj_stats_inc(struct objagg_obj *objagg_obj) objagg_obj 84 lib/objagg.c objagg_obj->stats.user_count++; objagg_obj 85 lib/objagg.c objagg_obj->stats.delta_user_count++; objagg_obj 86 lib/objagg.c if (objagg_obj->parent) objagg_obj 87 lib/objagg.c objagg_obj->parent->stats.delta_user_count++; objagg_obj 90 lib/objagg.c static void objagg_obj_stats_dec(struct objagg_obj *objagg_obj) objagg_obj 92 lib/objagg.c objagg_obj->stats.user_count--; objagg_obj 93 lib/objagg.c objagg_obj->stats.delta_user_count--; objagg_obj 94 lib/objagg.c if (objagg_obj->parent) objagg_obj 95 lib/objagg.c objagg_obj->parent->stats.delta_user_count--; objagg_obj 98 lib/objagg.c static bool objagg_obj_is_root(const struct objagg_obj *objagg_obj) objagg_obj 103 lib/objagg.c return !objagg_obj->parent; objagg_obj 118 lib/objagg.c const void *objagg_obj_root_priv(const struct objagg_obj *objagg_obj) objagg_obj 120 lib/objagg.c if (objagg_obj_is_root(objagg_obj)) objagg_obj 121 lib/objagg.c return objagg_obj->root_priv; objagg_obj 122 lib/objagg.c WARN_ON(!objagg_obj_is_root(objagg_obj->parent)); objagg_obj 123 lib/objagg.c return objagg_obj->parent->root_priv; objagg_obj 136 lib/objagg.c const void *objagg_obj_delta_priv(const struct objagg_obj *objagg_obj) objagg_obj 138 lib/objagg.c if (objagg_obj_is_root(objagg_obj)) objagg_obj 140 lib/objagg.c return objagg_obj->delta_priv; objagg_obj 152 lib/objagg.c const void *objagg_obj_raw(const struct objagg_obj *objagg_obj) objagg_obj 154 lib/objagg.c return objagg_obj->obj; objagg_obj 158 lib/objagg.c static struct objagg_obj *objagg_obj_lookup(struct objagg *objagg, void *obj) objagg_obj 164 lib/objagg.c struct objagg_obj *objagg_obj, objagg_obj 165 lib/objagg.c struct objagg_obj *parent, objagg_obj 171 lib/objagg.c objagg_obj->obj); objagg_obj 178 lib/objagg.c objagg_obj->parent = parent; objagg_obj 179 lib/objagg.c objagg_obj->delta_priv = delta_priv; objagg_obj 181 lib/objagg.c objagg_obj_ref_inc(objagg_obj->parent); objagg_obj 182 lib/objagg.c trace_objagg_obj_parent_assign(objagg, objagg_obj, objagg_obj 189 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 191 lib/objagg.c struct objagg_obj *objagg_obj_cur; objagg_obj 200 lib/objagg.c err = objagg_obj_parent_assign(objagg, objagg_obj, objagg_obj 209 lib/objagg.c struct objagg_obj *objagg_obj); objagg_obj 212 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 214 lib/objagg.c trace_objagg_obj_parent_unassign(objagg, objagg_obj, objagg_obj 215 lib/objagg.c objagg_obj->parent, objagg_obj 216 lib/objagg.c objagg_obj->parent->refcount); objagg_obj 217 lib/objagg.c objagg->ops->delta_destroy(objagg->priv, objagg_obj->delta_priv); objagg_obj 218 lib/objagg.c __objagg_obj_put(objagg, objagg_obj->parent); objagg_obj 222 lib/objagg.c struct objagg_obj *objagg_obj, objagg_obj 230 lib/objagg.c objagg_obj->root_id = OBJAGG_OBJ_ROOT_ID_INVALID; objagg_obj 249 lib/objagg.c objagg_obj->root_id = root_id; objagg_obj 254 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 258 lib/objagg.c ida_free(&objagg->root_ida, objagg_obj->root_id); objagg_obj 262 lib/objagg.c struct objagg_obj *objagg_obj, objagg_obj 267 lib/objagg.c err = objagg_obj_root_id_alloc(objagg, objagg_obj, hnode); objagg_obj 270 lib/objagg.c objagg_obj->root_priv = objagg->ops->root_create(objagg->priv, objagg_obj 271 lib/objagg.c objagg_obj->obj, objagg_obj 272 lib/objagg.c objagg_obj->root_id); objagg_obj 273 lib/objagg.c if (IS_ERR(objagg_obj->root_priv)) { objagg_obj 274 lib/objagg.c err = PTR_ERR(objagg_obj->root_priv); objagg_obj 277 lib/objagg.c trace_objagg_obj_root_create(objagg, objagg_obj); objagg_obj 281 lib/objagg.c objagg_obj_root_id_free(objagg, objagg_obj); objagg_obj 286 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 288 lib/objagg.c trace_objagg_obj_root_destroy(objagg, objagg_obj); objagg_obj 289 lib/objagg.c objagg->ops->root_destroy(objagg->priv, objagg_obj->root_priv); objagg_obj 290 lib/objagg.c objagg_obj_root_id_free(objagg, objagg_obj); objagg_obj 293 lib/objagg.c static struct objagg_obj *__objagg_obj_get(struct objagg *objagg, void *obj); objagg_obj 296 lib/objagg.c struct objagg_obj *objagg_obj, objagg_obj 300 lib/objagg.c struct objagg_obj *parent; objagg_obj 303 lib/objagg.c hnode = objagg_hints_lookup(objagg->hints, objagg_obj->obj); objagg_obj 311 lib/objagg.c return objagg_obj_root_create(objagg, objagg_obj, hnode); objagg_obj 317 lib/objagg.c err = objagg_obj_parent_assign(objagg, objagg_obj, parent, false); objagg_obj 332 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 340 lib/objagg.c err = objagg_obj_init_with_hints(objagg, objagg_obj, &hint_found); objagg_obj 348 lib/objagg.c err = objagg_obj_parent_lookup_assign(objagg, objagg_obj); objagg_obj 352 lib/objagg.c return objagg_obj_root_create(objagg, objagg_obj, NULL); objagg_obj 356 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 358 lib/objagg.c if (!objagg_obj_is_root(objagg_obj)) objagg_obj 359 lib/objagg.c objagg_obj_parent_unassign(objagg, objagg_obj); objagg_obj 361 lib/objagg.c objagg_obj_root_destroy(objagg, objagg_obj); objagg_obj 364 lib/objagg.c static struct objagg_obj *objagg_obj_create(struct objagg *objagg, void *obj) objagg_obj 366 lib/objagg.c struct objagg_obj *objagg_obj; objagg_obj 369 lib/objagg.c objagg_obj = kzalloc(sizeof(*objagg_obj) + objagg->ops->obj_size, objagg_obj 371 lib/objagg.c if (!objagg_obj) objagg_obj 373 lib/objagg.c objagg_obj_ref_inc(objagg_obj); objagg_obj 374 lib/objagg.c memcpy(objagg_obj->obj, obj, objagg->ops->obj_size); objagg_obj 376 lib/objagg.c err = objagg_obj_init(objagg, objagg_obj); objagg_obj 380 lib/objagg.c err = rhashtable_insert_fast(&objagg->obj_ht, &objagg_obj->ht_node, objagg_obj 384 lib/objagg.c list_add(&objagg_obj->list, &objagg->obj_list); objagg_obj 386 lib/objagg.c trace_objagg_obj_create(objagg, objagg_obj); objagg_obj 388 lib/objagg.c return objagg_obj; objagg_obj 391 lib/objagg.c objagg_obj_fini(objagg, objagg_obj); objagg_obj 393 lib/objagg.c kfree(objagg_obj); objagg_obj 397 lib/objagg.c static struct objagg_obj *__objagg_obj_get(struct objagg *objagg, void *obj) objagg_obj 399 lib/objagg.c struct objagg_obj *objagg_obj; objagg_obj 404 lib/objagg.c objagg_obj = objagg_obj_lookup(objagg, obj); objagg_obj 405 lib/objagg.c if (objagg_obj) { objagg_obj 406 lib/objagg.c objagg_obj_ref_inc(objagg_obj); objagg_obj 407 lib/objagg.c return objagg_obj; objagg_obj 437 lib/objagg.c struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj) objagg_obj 439 lib/objagg.c struct objagg_obj *objagg_obj; objagg_obj 441 lib/objagg.c objagg_obj = __objagg_obj_get(objagg, obj); objagg_obj 442 lib/objagg.c if (IS_ERR(objagg_obj)) objagg_obj 443 lib/objagg.c return objagg_obj; objagg_obj 444 lib/objagg.c objagg_obj_stats_inc(objagg_obj); objagg_obj 445 lib/objagg.c trace_objagg_obj_get(objagg, objagg_obj, objagg_obj->refcount); objagg_obj 446 lib/objagg.c return objagg_obj; objagg_obj 451 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 453 lib/objagg.c trace_objagg_obj_destroy(objagg, objagg_obj); objagg_obj 455 lib/objagg.c list_del(&objagg_obj->list); objagg_obj 456 lib/objagg.c rhashtable_remove_fast(&objagg->obj_ht, &objagg_obj->ht_node, objagg_obj 458 lib/objagg.c objagg_obj_fini(objagg, objagg_obj); objagg_obj 459 lib/objagg.c kfree(objagg_obj); objagg_obj 463 lib/objagg.c struct objagg_obj *objagg_obj) objagg_obj 465 lib/objagg.c if (!objagg_obj_ref_dec(objagg_obj)) objagg_obj 466 lib/objagg.c objagg_obj_destroy(objagg, objagg_obj); objagg_obj 478 lib/objagg.c void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj) objagg_obj 480 lib/objagg.c trace_objagg_obj_put(objagg, objagg_obj, objagg_obj->refcount); objagg_obj 481 lib/objagg.c objagg_obj_stats_dec(objagg_obj); objagg_obj 482 lib/objagg.c __objagg_obj_put(objagg, objagg_obj); objagg_obj 537 lib/objagg.c objagg->ht_params.key_offset = offsetof(struct objagg_obj, obj); objagg_obj 538 lib/objagg.c objagg->ht_params.head_offset = offsetof(struct objagg_obj, ht_node); objagg_obj 607 lib/objagg.c struct objagg_obj *objagg_obj; objagg_obj 616 lib/objagg.c list_for_each_entry(objagg_obj, &objagg->obj_list, list) { objagg_obj 617 lib/objagg.c memcpy(&objagg_stats->stats_info[i].stats, &objagg_obj->stats, objagg_obj 619 lib/objagg.c objagg_stats->stats_info[i].objagg_obj = objagg_obj; objagg_obj 621 lib/objagg.c objagg_obj_is_root(objagg_obj); objagg_obj 650 lib/objagg.c struct objagg_obj *objagg_obj, size_t obj_size, objagg_obj 653 lib/objagg.c unsigned int user_count = objagg_obj->stats.user_count; objagg_obj 660 lib/objagg.c memcpy(hnode->obj, &objagg_obj->obj, obj_size); objagg_obj 669 lib/objagg.c hnode->stats_info.objagg_obj = objagg_obj; objagg_obj 700 lib/objagg.c struct objagg_obj *objagg_obj; objagg_obj 738 lib/objagg.c unsigned int weight = node->objagg_obj->stats.user_count; objagg_obj 751 lib/objagg.c weight += node->objagg_obj->stats.user_count; objagg_obj 783 lib/objagg.c struct objagg_obj *objagg_obj; objagg_obj 803 lib/objagg.c list_for_each_entry(objagg_obj, &objagg->obj_list, list) { objagg_obj 805 lib/objagg.c node->objagg_obj = objagg_obj; objagg_obj 818 lib/objagg.c pnode->objagg_obj->obj, objagg_obj 819 lib/objagg.c node->objagg_obj->obj)) { objagg_obj 863 lib/objagg.c node->objagg_obj, objagg_obj 879 lib/objagg.c node->objagg_obj, objagg_obj 33 lib/test_objagg.c struct objagg_obj *objagg_objs[NUM_KEYS]; objagg_obj 46 lib/test_objagg.c static struct objagg_obj *world_obj_get(struct world *world, objagg_obj 50 lib/test_objagg.c struct objagg_obj *objagg_obj; objagg_obj 55 lib/test_objagg.c objagg_obj = objagg_obj_get(objagg, &key); objagg_obj 56 lib/test_objagg.c if (IS_ERR(objagg_obj)) { objagg_obj 58 lib/test_objagg.c return objagg_obj; objagg_obj 61 lib/test_objagg.c world->objagg_objs[key_id_index(key_id)] = objagg_obj; objagg_obj 62 lib/test_objagg.c } else if (world->objagg_objs[key_id_index(key_id)] != objagg_obj) { objagg_obj 69 lib/test_objagg.c return objagg_obj; objagg_obj 72 lib/test_objagg.c objagg_obj_put(objagg, objagg_obj); objagg_obj 79 lib/test_objagg.c struct objagg_obj *objagg_obj; objagg_obj 83 lib/test_objagg.c objagg_obj = world->objagg_objs[key_id_index(key_id)]; objagg_obj 84 lib/test_objagg.c objagg_obj_put(objagg, objagg_obj); objagg_obj 155 lib/test_objagg.c struct objagg_obj *objagg_obj; objagg_obj 163 lib/test_objagg.c objagg_obj = world_obj_get(world, objagg, key_id); objagg_obj 164 lib/test_objagg.c if (IS_ERR(objagg_obj)) { objagg_obj 166 lib/test_objagg.c return PTR_ERR(objagg_obj); objagg_obj 182 lib/test_objagg.c root = objagg_obj_root_priv(objagg_obj); objagg_obj 200 lib/test_objagg.c objagg_obj_put(objagg, objagg_obj); objagg_obj 626 lib/test_objagg.c static unsigned int obj_to_key_id(struct objagg_obj *objagg_obj) objagg_obj 632 lib/test_objagg.c root_key = objagg_obj_root_priv(objagg_obj); objagg_obj 634 lib/test_objagg.c delta = objagg_obj_delta_priv(objagg_obj); objagg_obj 670 lib/test_objagg.c if (obj_to_key_id(stats_info->objagg_obj) != objagg_obj 766 lib/test_objagg.c struct objagg_obj *objagg_obj; objagg_obj 775 lib/test_objagg.c objagg_obj = world_obj_get(world, objagg, key_id); objagg_obj 776 lib/test_objagg.c if (IS_ERR(objagg_obj)) objagg_obj 777 lib/test_objagg.c return PTR_ERR(objagg_obj); objagg_obj 866 lib/test_objagg.c obj_to_key_id(stats->stats_info[i].objagg_obj), objagg_obj 911 lib/test_objagg.c struct objagg_obj *objagg_obj; objagg_obj 926 lib/test_objagg.c objagg_obj = world_obj_get(&world, objagg, objagg_obj 928 lib/test_objagg.c if (IS_ERR(objagg_obj)) { objagg_obj 929 lib/test_objagg.c err = PTR_ERR(objagg_obj); objagg_obj 960 lib/test_objagg.c objagg_obj = world_obj_get(&world2, objagg2, objagg_obj 962 lib/test_objagg.c if (IS_ERR(objagg_obj)) { objagg_obj 963 lib/test_objagg.c err = PTR_ERR(objagg_obj);