diff options
author | Steve Wise <swise@chelsio.com> | 2016-05-03 12:01:08 -0400 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-05-13 13:37:19 -0400 |
commit | d4a85c309b33f93cb211f2fa9d26fa77d0bb7b5e (patch) | |
tree | e8a272aaa3a9a9bf3d6d355af58bcb4cf09bca82 | |
parent | fffb0383cf0b433ad029d19e6e9d6f1f46523ace (diff) |
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.c | 2 | ||||
-rw-r--r-- | include/rdma/ib_verbs.h | 1 |
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) | |||
1353 | mr->pd = pd; | 1353 | mr->pd = pd; |
1354 | mr->uobject = NULL; | 1354 | mr->uobject = NULL; |
1355 | atomic_inc(&pd->usecnt); | 1355 | atomic_inc(&pd->usecnt); |
1356 | mr->need_inval = false; | ||
1356 | } | 1357 | } |
1357 | 1358 | ||
1358 | return mr; | 1359 | return mr; |
@@ -1399,6 +1400,7 @@ struct ib_mr *ib_alloc_mr(struct ib_pd *pd, | |||
1399 | mr->pd = pd; | 1400 | mr->pd = pd; |
1400 | mr->uobject = NULL; | 1401 | mr->uobject = NULL; |
1401 | atomic_inc(&pd->usecnt); | 1402 | atomic_inc(&pd->usecnt); |
1403 | mr->need_inval = false; | ||
1402 | } | 1404 | } |
1403 | 1405 | ||
1404 | return mr; | 1406 | 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 { | |||
1446 | u64 iova; | 1446 | u64 iova; |
1447 | u32 length; | 1447 | u32 length; |
1448 | unsigned int page_size; | 1448 | unsigned int page_size; |
1449 | bool need_inval; | ||
1449 | union { | 1450 | union { |
1450 | struct ib_uobject *uobject; /* user */ | 1451 | struct ib_uobject *uobject; /* user */ |
1451 | struct list_head qp_entry; /* FR */ | 1452 | struct list_head qp_entry; /* FR */ |