Lines Matching refs:hierarchy

254 	struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
257 if (!hierarchy || xa_get_mark(&hierarchy->shapers, index,
261 return xa_load(&hierarchy->shapers, index);
264 /* Allocate on demand the per device shaper's hierarchy container.
270 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
272 if (hierarchy)
273 return hierarchy;
275 hierarchy = kmalloc(sizeof(*hierarchy), GFP_KERNEL);
276 if (!hierarchy)
280 xa_init_flags(&hierarchy->shapers, XA_FLAGS_ALLOC);
285 WRITE_ONCE(binding->netdev->net_shaper_hierarchy, hierarchy);
288 return hierarchy;
291 /* Prepare the hierarchy container to actually insert the given shaper, doing
298 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
303 if (!hierarchy)
307 cur = xa_load(&hierarchy->shapers, index);
321 ret = xa_alloc(&hierarchy->shapers, &index, NULL,
338 /* Mark 'tentative' shaper inside the hierarchy container.
341 xa_lock(&hierarchy->shapers);
342 prev = __xa_store(&hierarchy->shapers, index, cur, GFP_KERNEL);
343 __xa_set_mark(&hierarchy->shapers, index, NET_SHAPER_NOT_VALID);
344 xa_unlock(&hierarchy->shapers);
355 xa_erase(&hierarchy->shapers, index);
365 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
370 xa_lock(&hierarchy->shapers);
374 cur = xa_load(&hierarchy->shapers, index);
379 * and update the hierarchy container.
381 __xa_clear_mark(&hierarchy->shapers, index,
385 xa_unlock(&hierarchy->shapers);
388 /* Rollback all the tentative inserts from the hierarchy. */
391 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
395 if (!hierarchy)
398 xa_lock(&hierarchy->shapers);
399 xa_for_each_marked(&hierarchy->shapers, index, cur,
401 __xa_erase(&hierarchy->shapers, index);
404 xa_unlock(&hierarchy->shapers);
533 /* Fetch existing hierarchy, if any, so that user provide info will
778 struct net_shaper_hierarchy *hierarchy;
785 hierarchy = net_shaper_hierarchy(binding);
786 if (!hierarchy)
790 for (; (shaper = xa_find(&hierarchy->shapers, &ctx->start_index,
803 struct net_shaper_hierarchy *hierarchy;
822 hierarchy = net_shaper_hierarchy_setup(binding);
823 if (!hierarchy) {
858 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
870 xa_erase(&hierarchy->shapers, net_shaper_handle_to_index(&handle));
1013 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
1042 xa_for_each(&hierarchy->shapers, index, cur) {
1069 struct net_shaper_hierarchy *hierarchy;
1086 hierarchy = net_shaper_hierarchy(binding);
1087 if (!hierarchy) {
1141 struct net_shaper_hierarchy *hierarchy;
1199 hierarchy = net_shaper_hierarchy_setup(binding);
1200 if (!hierarchy) {
1356 struct net_shaper_hierarchy *hierarchy = net_shaper_hierarchy(binding);
1360 if (!hierarchy)
1364 xa_lock(&hierarchy->shapers);
1365 xa_for_each(&hierarchy->shapers, index, cur) {
1366 __xa_erase(&hierarchy->shapers, index);
1369 xa_unlock(&hierarchy->shapers);
1372 kfree(hierarchy);
1388 struct net_shaper_hierarchy *hierarchy;
1394 hierarchy = net_shaper_hierarchy(&binding);
1395 if (!hierarchy)
1420 xa_erase(&hierarchy->shapers, index);