Merge mlx5-next into rdma for-next
[sfrench/cifs-2.6.git] / drivers / infiniband / hw / mlx5 / odp.c
index 3d18b6ea9efab29c774b490a8542930ee7e54ec0..5b642d81e617dc61207f3a690df1e7b304203326 100644 (file)
@@ -765,7 +765,7 @@ static int pagefault_single_data_segment(struct mlx5_ib_dev *dev,
        bcnt -= *bytes_committed;
 
 next_mr:
-       mmkey = __mlx5_mr_lookup(dev->mdev, mlx5_base_mkey(key));
+       mmkey = xa_load(&dev->mdev->priv.mkey_table, mlx5_base_mkey(key));
        if (!mkey_is_eq(mmkey, key)) {
                mlx5_ib_dbg(dev, "failed to find mkey %x\n", key);
                ret = -EFAULT;
@@ -1555,9 +1555,9 @@ mlx5_ib_create_pf_eq(struct mlx5_ib_dev *dev, struct mlx5_ib_pf_eq *eq)
        eq->irq_nb.notifier_call = mlx5_ib_eq_pf_int;
        param = (struct mlx5_eq_param) {
                .irq_index = 0,
-               .mask = 1 << MLX5_EVENT_TYPE_PAGE_FAULT,
                .nent = MLX5_IB_NUM_PF_EQE,
        };
+       param.mask[0] = 1ull << MLX5_EVENT_TYPE_PAGE_FAULT;
        eq->core = mlx5_eq_create_generic(dev->mdev, &param);
        if (IS_ERR(eq->core)) {
                err = PTR_ERR(eq->core);
@@ -1683,8 +1683,8 @@ static void num_pending_prefetch_dec(struct mlx5_ib_dev *dev,
                struct mlx5_core_mkey *mmkey;
                struct mlx5_ib_mr *mr;
 
-               mmkey = __mlx5_mr_lookup(dev->mdev,
-                                        mlx5_base_mkey(sg_list[i].lkey));
+               mmkey = xa_load(&dev->mdev->priv.mkey_table,
+                               mlx5_base_mkey(sg_list[i].lkey));
                mr = container_of(mmkey, struct mlx5_ib_mr, mmkey);
                atomic_dec(&mr->num_pending_prefetch);
        }
@@ -1703,8 +1703,8 @@ static bool num_pending_prefetch_inc(struct ib_pd *pd,
                struct mlx5_core_mkey *mmkey;
                struct mlx5_ib_mr *mr;
 
-               mmkey = __mlx5_mr_lookup(dev->mdev,
-                                        mlx5_base_mkey(sg_list[i].lkey));
+               mmkey = xa_load(&dev->mdev->priv.mkey_table,
+                               mlx5_base_mkey(sg_list[i].lkey));
                if (!mmkey || mmkey->key != sg_list[i].lkey) {
                        ret = false;
                        break;