Lines Matching refs:zones
226 struct mlx4_zone_allocator *zones = kmalloc(sizeof(*zones), GFP_KERNEL);
228 if (NULL == zones)
231 INIT_LIST_HEAD(&zones->entries);
232 INIT_LIST_HEAD(&zones->prios);
233 spin_lock_init(&zones->lock);
234 zones->last_uid = 0;
235 zones->mask = 0;
236 zones->flags = flags;
238 return zones;
426 struct mlx4_zone_allocator *zones, u32 uid)
430 list_for_each_entry(zone, &zones->entries, list) {
438 struct mlx4_bitmap *mlx4_zone_get_bitmap(struct mlx4_zone_allocator *zones, u32 uid)
443 spin_lock(&zones->lock);
445 zone = __mlx4_find_zone_by_uid(zones, uid);
449 spin_unlock(&zones->lock);
454 int mlx4_zone_remove_one(struct mlx4_zone_allocator *zones, u32 uid)
459 spin_lock(&zones->lock);
461 zone = __mlx4_find_zone_by_uid(zones, uid);
471 spin_unlock(&zones->lock);
479 struct mlx4_zone_allocator *zones, u32 obj)
490 list_for_each_entry(zone, &zones->entries, list) {
492 u32 mobj = (obj - zone->offset) & zones->mask;
508 u32 mlx4_zone_alloc_entries(struct mlx4_zone_allocator *zones, u32 uid, int count,
514 spin_lock(&zones->lock);
516 zone = __mlx4_find_zone_by_uid(zones, uid);
524 spin_unlock(&zones->lock);
529 u32 mlx4_zone_free_entries(struct mlx4_zone_allocator *zones, u32 uid, u32 obj, u32 count)
534 spin_lock(&zones->lock);
536 zone = __mlx4_find_zone_by_uid(zones, uid);
546 spin_unlock(&zones->lock);
551 u32 mlx4_zone_free_entries_unique(struct mlx4_zone_allocator *zones, u32 obj, u32 count)
556 if (!(zones->flags & MLX4_ZONE_ALLOC_FLAGS_NO_OVERLAP))
559 spin_lock(&zones->lock);
561 zone = __mlx4_find_zone_by_uid_unique(zones, obj);
572 spin_unlock(&zones->lock);