summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Wise2016-05-03 18:01:08 +0200
committerDoug Ledford2016-05-13 19:37:19 +0200
commitd4a85c309b33f93cb211f2fa9d26fa77d0bb7b5e (patch)
treee8a272aaa3a9a9bf3d6d355af58bcb4cf09bca82
parentIB/core: add a simple MR pool (diff)
downloadkernel-qcow2-linux-d4a85c309b33f93cb211f2fa9d26fa77d0bb7b5e.tar.gz
kernel-qcow2-linux-d4a85c309b33f93cb211f2fa9d26fa77d0bb7b5e.tar.xz
kernel-qcow2-linux-d4a85c309b33f93cb211f2fa9d26fa77d0bb7b5e.zip
IB/core: add a need_inval flag to struct ib_mr
This is the first step toward moving MR invalidation decisions to the core. It will be needed by the upcoming RW API. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r--drivers/infiniband/core/verbs.c2
-rw-r--r--include/rdma/ib_verbs.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index 8549345c6169..76c9c3faac20 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1353,6 +1353,7 @@ struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags)
mr->pd = pd;
mr->uobject = NULL;
atomic_inc(&pd->usecnt);
+ mr->need_inval = false;
}
return mr;
@@ -1399,6 +1400,7 @@ struct ib_mr *ib_alloc_mr(struct ib_pd *pd,
mr->pd = pd;
mr->uobject = NULL;
atomic_inc(&pd->usecnt);
+ mr->need_inval = false;
}
return mr;
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 400a8a0422a4..3f66647749ca 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1446,6 +1446,7 @@ struct ib_mr {
u64 iova;
u32 length;
unsigned int page_size;
+ bool need_inval;
union {
struct ib_uobject *uobject; /* user */
struct list_head qp_entry; /* FR */