summaryrefslogtreecommitdiff
path: root/drivers/infiniband/sw/rxe/rxe_verbs.h
diff options
context:
space:
mode:
authorBob Pearson <rpearsonhpe@gmail.com>2023-01-19 17:59:36 -0600
committerJason Gunthorpe <jgg@nvidia.com>2023-01-26 15:04:46 -0400
commit325a7eb85199ec9c5b5a7af812f43ea16b735569 (patch)
tree29c36daa0255d148665e4081afee8af4dc573110 /drivers/infiniband/sw/rxe/rxe_verbs.h
parentd8bdb0ebca086b5845d782e800ad2bf2a7eb4877 (diff)
RDMA/rxe: Cleanup page variables in rxe_mr.c
Cleanup usage of mr->page_shift and mr->page_mask and introduce an extractor for mr->ibmr.page_size. Normal usage in the kernel has page_mask masking out offset in page rather than masking out the page number. The rxe driver had reversed that which was confusing. Implicitly there can be a per mr page_size which was not uniformly supported. Link: https://lore.kernel.org/r/20230119235936.19728-6-rpearsonhpe@gmail.com Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband/sw/rxe/rxe_verbs.h')
-rw-r--r--drivers/infiniband/sw/rxe/rxe_verbs.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.h b/drivers/infiniband/sw/rxe/rxe_verbs.h
index 19ddfa890480..bfc94caaeec5 100644
--- a/drivers/infiniband/sw/rxe/rxe_verbs.h
+++ b/drivers/infiniband/sw/rxe/rxe_verbs.h
@@ -310,11 +310,11 @@ struct rxe_mr {
u32 lkey;
u32 rkey;
enum rxe_mr_state state;
- u32 offset;
int access;
- int page_shift;
- int page_mask;
+ unsigned int page_offset;
+ unsigned int page_shift;
+ u64 page_mask;
int map_shift;
int map_mask;
@@ -329,6 +329,11 @@ struct rxe_mr {
struct rxe_map **map;
};
+static inline unsigned int mr_page_size(struct rxe_mr *mr)
+{
+ return mr ? mr->ibmr.page_size : PAGE_SIZE;
+}
+
enum rxe_mw_state {
RXE_MW_STATE_INVALID = RXE_MR_STATE_INVALID,
RXE_MW_STATE_FREE = RXE_MR_STATE_FREE,