net/mlx5_core: New device capabilities handling
[cascardo/linux.git] / drivers / net / ethernet / mellanox / mlx5 / core / uar.c
index ba58f6d..9ef8587 100644 (file)
@@ -175,12 +175,13 @@ int mlx5_alloc_uuars(struct mlx5_core_dev *dev, struct mlx5_uuar_info *uuari)
        for (i = 0; i < tot_uuars; i++) {
                bf = &uuari->bfs[i];
 
-               bf->buf_size = dev->caps.gen.bf_reg_size / 2;
+               bf->buf_size = (1 << MLX5_CAP_GEN(dev, log_bf_reg_size)) / 2;
                bf->uar = &uuari->uars[i / MLX5_BF_REGS_PER_PAGE];
                bf->regreg = uuari->uars[i / MLX5_BF_REGS_PER_PAGE].map;
                bf->reg = NULL; /* Add WC support */
-               bf->offset = (i % MLX5_BF_REGS_PER_PAGE) * dev->caps.gen.bf_reg_size +
-                       MLX5_BF_OFFSET;
+               bf->offset = (i % MLX5_BF_REGS_PER_PAGE) *
+                            (1 << MLX5_CAP_GEN(dev, log_bf_reg_size)) +
+                            MLX5_BF_OFFSET;
                bf->need_lock = need_uuar_lock(i);
                spin_lock_init(&bf->lock);
                spin_lock_init(&bf->lock32);