summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorIra Weiny2016-07-28 18:27:31 +0200
committerDoug Ledford2016-08-03 04:46:21 +0200
commit3c1091aa94d6c973cfb3eab17afdb4565f8a4ae6 (patch)
tree780cb3d581f7a2074f341afcd509225d4419c8e6 /drivers/infiniband
parentIB/hfi1: Always expect ops functions (diff)
downloadkernel-qcow2-linux-3c1091aa94d6c973cfb3eab17afdb4565f8a4ae6.tar.gz
kernel-qcow2-linux-3c1091aa94d6c973cfb3eab17afdb4565f8a4ae6.tar.xz
kernel-qcow2-linux-3c1091aa94d6c973cfb3eab17afdb4565f8a4ae6.zip
IB/hfi1: Consolidate __mmu_rb_remove and hfi1_mmu_rb_remove
__mmu_rb_remove was called in only 1 place which was a very simple call site. Combine this function into its caller. Reviewed-by: Dean Luick <dean.luick@intel.com> Signed-off-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/hw/hfi1/mmu_rb.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/infiniband/hw/hfi1/mmu_rb.c b/drivers/infiniband/hw/hfi1/mmu_rb.c
index 525d58afb354..b845adf9fc0e 100644
--- a/drivers/infiniband/hw/hfi1/mmu_rb.c
+++ b/drivers/infiniband/hw/hfi1/mmu_rb.c
@@ -200,22 +200,6 @@ static struct mmu_rb_node *__mmu_rb_search(struct mmu_rb_handler *handler,
return node;
}
-/* Caller must *not* hold handler lock. */
-static void __mmu_rb_remove(struct mmu_rb_handler *handler,
- struct mmu_rb_node *node, struct mm_struct *mm)
-{
- unsigned long flags;
-
- /* Validity of handler and node pointers has been checked by caller. */
- hfi1_cdbg(MMU, "Removing node addr 0x%llx, len %u", node->addr,
- node->len);
- spin_lock_irqsave(&handler->lock, flags);
- __mmu_int_rb_remove(node, handler->root);
- spin_unlock_irqrestore(&handler->lock, flags);
-
- handler->ops->remove(handler->root, node, mm);
-}
-
struct mmu_rb_node *hfi1_mmu_rb_extract(struct rb_root *root,
unsigned long addr, unsigned long len)
{
@@ -237,12 +221,20 @@ struct mmu_rb_node *hfi1_mmu_rb_extract(struct rb_root *root,
void hfi1_mmu_rb_remove(struct rb_root *root, struct mmu_rb_node *node)
{
+ unsigned long flags;
struct mmu_rb_handler *handler = find_mmu_handler(root);
if (!handler || !node)
return;
- __mmu_rb_remove(handler, node, NULL);
+ /* Validity of handler and node pointers has been checked by caller. */
+ hfi1_cdbg(MMU, "Removing node addr 0x%llx, len %u", node->addr,
+ node->len);
+ spin_lock_irqsave(&handler->lock, flags);
+ __mmu_int_rb_remove(node, handler->root);
+ spin_unlock_irqrestore(&handler->lock, flags);
+
+ handler->ops->remove(handler->root, node, NULL);
}
static struct mmu_rb_handler *find_mmu_handler(struct rb_root *root)