summaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorMitko Haralanov <mitko.haralanov@intel.com>2016-03-08 11:15:04 -0800
committerDoug Ledford <dledford@redhat.com>2016-03-21 15:55:23 -0400
commitb8718e2e2e4702dfbe0d9a15d527e0531807e871 (patch)
tree97b0e0bbfed76a83ae8310fbb39a20a5554ef957 /drivers/staging
parent353b71c7c08ed75fe83843a382e5ca53376d07ca (diff)
downloadop-kernel-dev-b8718e2e2e4702dfbe0d9a15d527e0531807e871.zip
op-kernel-dev-b8718e2e2e4702dfbe0d9a15d527e0531807e871.tar.gz
IB/hfi1: Remove compare callback
Interval RB trees provide their own searching function, which also takes care of determining the path through the tree that should be taken. This make the compare callback unnecessary. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Dean Luick <dean.luick@intel.com> Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com> Signed-off-by: Jubin John <jubin.john@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/rdma/hfi1/mmu_rb.c2
-rw-r--r--drivers/staging/rdma/hfi1/mmu_rb.h2
-rw-r--r--drivers/staging/rdma/hfi1/user_exp_rcv.c14
3 files changed, 1 insertions, 17 deletions
diff --git a/drivers/staging/rdma/hfi1/mmu_rb.c b/drivers/staging/rdma/hfi1/mmu_rb.c
index c30373d..5d27fee 100644
--- a/drivers/staging/rdma/hfi1/mmu_rb.c
+++ b/drivers/staging/rdma/hfi1/mmu_rb.c
@@ -98,7 +98,7 @@ int hfi1_mmu_rb_register(struct rb_root *root, struct mmu_rb_ops *ops)
struct mmu_rb_handler *handlr;
unsigned long flags;
- if (!ops->compare || !ops->invalidate)
+ if (!ops->invalidate)
return -EINVAL;
handlr = kmalloc(sizeof(*handlr), GFP_KERNEL);
diff --git a/drivers/staging/rdma/hfi1/mmu_rb.h b/drivers/staging/rdma/hfi1/mmu_rb.h
index abed3a6..9c26009 100644
--- a/drivers/staging/rdma/hfi1/mmu_rb.h
+++ b/drivers/staging/rdma/hfi1/mmu_rb.h
@@ -57,8 +57,6 @@ struct mmu_rb_node {
};
struct mmu_rb_ops {
- int (*compare)(struct mmu_rb_node *, unsigned long,
- unsigned long);
int (*insert)(struct rb_root *, struct mmu_rb_node *);
void (*remove)(struct rb_root *, struct mmu_rb_node *, bool);
int (*invalidate)(struct rb_root *, struct mmu_rb_node *);
diff --git a/drivers/staging/rdma/hfi1/user_exp_rcv.c b/drivers/staging/rdma/hfi1/user_exp_rcv.c
index 1d971c0..bf670cb 100644
--- a/drivers/staging/rdma/hfi1/user_exp_rcv.c
+++ b/drivers/staging/rdma/hfi1/user_exp_rcv.c
@@ -86,8 +86,6 @@ static void unlock_exp_tids(struct hfi1_ctxtdata *, struct exp_tid_set *,
static u32 find_phys_blocks(struct page **, unsigned, struct tid_pageset *);
static int set_rcvarray_entry(struct file *, unsigned long, u32,
struct tid_group *, struct page **, unsigned);
-static inline int mmu_addr_cmp(struct mmu_rb_node *, unsigned long,
- unsigned long);
static int mmu_rb_insert(struct rb_root *, struct mmu_rb_node *);
static void mmu_rb_remove(struct rb_root *, struct mmu_rb_node *, bool);
static int mmu_rb_invalidate(struct rb_root *, struct mmu_rb_node *);
@@ -98,7 +96,6 @@ static int unprogram_rcvarray(struct file *, u32, struct tid_group **);
static void clear_tid_node(struct hfi1_filedata *, u16, struct tid_rb_node *);
static struct mmu_rb_ops tid_rb_ops = {
- .compare = mmu_addr_cmp,
.insert = mmu_rb_insert,
.remove = mmu_rb_remove,
.invalidate = mmu_rb_invalidate
@@ -1016,17 +1013,6 @@ static int mmu_rb_invalidate(struct rb_root *root, struct mmu_rb_node *mnode)
return 0;
}
-static int mmu_addr_cmp(struct mmu_rb_node *node, unsigned long addr,
- unsigned long len)
-{
- if ((addr + len) <= node->addr)
- return -1;
- else if (addr >= node->addr && addr < (node->addr + node->len))
- return 0;
- else
- return 1;
-}
-
static int mmu_rb_insert(struct rb_root *root, struct mmu_rb_node *node)
{
struct hfi1_filedata *fdata =
OpenPOWER on IntegriCloud