Lines Matching refs:var_table

2086 	struct mlx5_var_table *var_table = &dev->var_table;  in mlx5_ib_mmap_free()  local
2097 mutex_lock(&var_table->bitmap_lock); in mlx5_ib_mmap_free()
2098 clear_bit(mentry->page_idx, var_table->bitmap); in mlx5_ib_mmap_free()
2099 mutex_unlock(&var_table->bitmap_lock); in mlx5_ib_mmap_free()
3633 struct mlx5_var_table *var_table; in alloc_var_entry() local
3637 var_table = &to_mdev(c->ibucontext.device)->var_table; in alloc_var_entry()
3642 mutex_lock(&var_table->bitmap_lock); in alloc_var_entry()
3643 page_idx = find_first_zero_bit(var_table->bitmap, in alloc_var_entry()
3644 var_table->num_var_hw_entries); in alloc_var_entry()
3645 if (page_idx >= var_table->num_var_hw_entries) { in alloc_var_entry()
3647 mutex_unlock(&var_table->bitmap_lock); in alloc_var_entry()
3651 set_bit(page_idx, var_table->bitmap); in alloc_var_entry()
3652 mutex_unlock(&var_table->bitmap_lock); in alloc_var_entry()
3654 entry->address = var_table->hw_start_addr + in alloc_var_entry()
3655 (page_idx * var_table->stride_size); in alloc_var_entry()
3660 var_table->stride_size); in alloc_var_entry()
3667 mutex_lock(&var_table->bitmap_lock); in alloc_var_entry()
3668 clear_bit(page_idx, var_table->bitmap); in alloc_var_entry()
3669 mutex_unlock(&var_table->bitmap_lock); in alloc_var_entry()
4108 struct mlx5_var_table *var_table = &dev->var_table; in mlx5_ib_init_var_table() local
4117 var_table->hw_start_addr = dev->mdev->bar_addr + in mlx5_ib_init_var_table()
4121 var_table->stride_size = 1ULL << log_doorbell_stride; in mlx5_ib_init_var_table()
4122 var_table->num_var_hw_entries = div_u64(bar_size, in mlx5_ib_init_var_table()
4123 var_table->stride_size); in mlx5_ib_init_var_table()
4124 mutex_init(&var_table->bitmap_lock); in mlx5_ib_init_var_table()
4125 var_table->bitmap = bitmap_zalloc(var_table->num_var_hw_entries, in mlx5_ib_init_var_table()
4127 return (var_table->bitmap) ? 0 : -ENOMEM; in mlx5_ib_init_var_table()
4132 bitmap_free(dev->var_table.bitmap); in mlx5_ib_stage_caps_cleanup()