OSDN Git Service

RDMA/rxe: Move rxe_map_mr_sg to rxe_mr.c
authorBob Pearson <rpearsonhpe@gmail.com>
Thu, 19 Jan 2023 23:59:33 +0000 (17:59 -0600)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 26 Jan 2023 19:04:45 +0000 (15:04 -0400)
Move rxe_map_mr_sg() to rxe_mr.c where it makes a little more sense.

Link: https://lore.kernel.org/r/20230119235936.19728-3-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_loc.h
drivers/infiniband/sw/rxe/rxe_mr.c
drivers/infiniband/sw/rxe/rxe_verbs.c

index 948ce49..29b6c21 100644 (file)
@@ -69,6 +69,8 @@ int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
                enum rxe_mr_copy_dir dir);
 int copy_data(struct rxe_pd *pd, int access, struct rxe_dma_info *dma,
              void *addr, int length, enum rxe_mr_copy_dir dir);
+int rxe_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg,
+                 int sg_nents, unsigned int *sg_offset);
 void *iova_to_vaddr(struct rxe_mr *mr, u64 iova, int length);
 struct rxe_mr *lookup_mr(struct rxe_pd *pd, int access, u32 key,
                         enum rxe_mr_lookup_type type);
index 632ee1e..229c725 100644 (file)
@@ -223,6 +223,42 @@ err1:
        return err;
 }
 
+static int rxe_set_page(struct ib_mr *ibmr, u64 addr)
+{
+       struct rxe_mr *mr = to_rmr(ibmr);
+       struct rxe_map *map;
+       struct rxe_phys_buf *buf;
+
+       if (unlikely(mr->nbuf == mr->num_buf))
+               return -ENOMEM;
+
+       map = mr->map[mr->nbuf / RXE_BUF_PER_MAP];
+       buf = &map->buf[mr->nbuf % RXE_BUF_PER_MAP];
+
+       buf->addr = addr;
+       buf->size = ibmr->page_size;
+       mr->nbuf++;
+
+       return 0;
+}
+
+int rxe_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg,
+                 int sg_nents, unsigned int *sg_offset)
+{
+       struct rxe_mr *mr = to_rmr(ibmr);
+       int n;
+
+       mr->nbuf = 0;
+
+       n = ib_sg_to_pages(ibmr, sg, sg_nents, sg_offset, rxe_set_page);
+
+       mr->page_shift = ilog2(ibmr->page_size);
+       mr->page_mask = ibmr->page_size - 1;
+       mr->offset = ibmr->iova & mr->page_mask;
+
+       return n;
+}
+
 static void lookup_iova(struct rxe_mr *mr, u64 iova, int *m_out, int *n_out,
                        size_t *offset_out)
 {
index 025b35b..7a902e0 100644 (file)
@@ -948,42 +948,6 @@ err1:
        return ERR_PTR(err);
 }
 
-static int rxe_set_page(struct ib_mr *ibmr, u64 addr)
-{
-       struct rxe_mr *mr = to_rmr(ibmr);
-       struct rxe_map *map;
-       struct rxe_phys_buf *buf;
-
-       if (unlikely(mr->nbuf == mr->num_buf))
-               return -ENOMEM;
-
-       map = mr->map[mr->nbuf / RXE_BUF_PER_MAP];
-       buf = &map->buf[mr->nbuf % RXE_BUF_PER_MAP];
-
-       buf->addr = addr;
-       buf->size = ibmr->page_size;
-       mr->nbuf++;
-
-       return 0;
-}
-
-static int rxe_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg,
-                        int sg_nents, unsigned int *sg_offset)
-{
-       struct rxe_mr *mr = to_rmr(ibmr);
-       int n;
-
-       mr->nbuf = 0;
-
-       n = ib_sg_to_pages(ibmr, sg, sg_nents, sg_offset, rxe_set_page);
-
-       mr->page_shift = ilog2(ibmr->page_size);
-       mr->page_mask = ibmr->page_size - 1;
-       mr->offset = ibmr->iova & mr->page_mask;
-
-       return n;
-}
-
 static ssize_t parent_show(struct device *device,
                           struct device_attribute *attr, char *buf)
 {