IB/hfi1: Remove the use of add/remove RB function pointers
[platform/kernel/linux-starfive.git] / drivers / staging / rdma / hfi1 / user_exp_rcv.c
index c9e05dd..b0b193f 100644 (file)
@@ -223,14 +223,6 @@ int hfi1_user_exp_rcv_init(struct file *fp)
                }
        }
 
-       if (HFI1_CAP_IS_USET(TID_UNMAP)) {
-               fd->mmu_rb_insert = mmu_rb_insert;
-               fd->mmu_rb_remove = mmu_rb_remove;
-       } else {
-               fd->mmu_rb_insert = hfi1_mmu_rb_insert;
-               fd->mmu_rb_remove = hfi1_mmu_rb_remove;
-       }
-
        /*
         * PSM does not have a good way to separate, count, and
         * effectively enforce a limit on RcvArray entries used by
@@ -861,7 +853,10 @@ static int set_rcvarray_entry(struct file *fp, unsigned long vaddr,
        node->freed = false;
        memcpy(node->pages, pages, sizeof(struct page *) * npages);
 
-       ret = fd->mmu_rb_insert(root, &node->mmu);
+       if (HFI1_CAP_IS_USET(TID_UNMAP))
+               ret = mmu_rb_insert(root, &node->mmu);
+       else
+               ret = hfi1_mmu_rb_insert(root, &node->mmu);
 
        if (ret) {
                hfi1_cdbg(TID, "Failed to insert RB node %u 0x%lx, 0x%lx %d",
@@ -901,7 +896,10 @@ static int unprogram_rcvarray(struct file *fp, u32 tidinfo,
        node = fd->entry_to_rb[rcventry];
        if (!node || node->rcventry != (uctxt->expected_base + rcventry))
                return -EBADF;
-       fd->mmu_rb_remove(&fd->tid_rb_root, &node->mmu);
+       if (HFI1_CAP_IS_USET(TID_UNMAP))
+               mmu_rb_remove(&fd->tid_rb_root, &node->mmu);
+       else
+               hfi1_mmu_rb_remove(&fd->tid_rb_root, &node->mmu);
 
        if (grp)
                *grp = node->grp;
@@ -962,7 +960,12 @@ static void unlock_exp_tids(struct hfi1_ctxtdata *uctxt,
                                                          uctxt->expected_base];
                                if (!node || node->rcventry != rcventry)
                                        continue;
-                               fd->mmu_rb_remove(root, &node->mmu);
+                               if (HFI1_CAP_IS_USET(TID_UNMAP))
+                                       mmu_rb_remove(&fd->tid_rb_root,
+                                                     &node->mmu);
+                               else
+                                       hfi1_mmu_rb_remove(&fd->tid_rb_root,
+                                                          &node->mmu);
                                clear_tid_node(fd, -1, node);
                        }
                }