+++ /dev/null
-From 39a52745de943c72c9ce7488cef9e3cafe962d31 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Sep 2020 19:41:48 -0300
-Subject: RDMA/efa: Use ib_umem_num_dma_pages()
-
-From: Jason Gunthorpe <jgg@nvidia.com>
-
-[ Upstream commit 1f9b6827c85f9d9786f31a1434a16c917aae23b2 ]
-
-If ib_umem_find_best_pgsz() returns > PAGE_SIZE then the equation here is
-not correct. 'start' should be 'virt'. Change it to use the core code for
-page_num and the canonical calculation of page_shift.
-
-Fixes: 40ddb3f02083 ("RDMA/efa: Use API to get contiguous memory blocks aligned to device supported page size")
-Link: https://lore.kernel.org/r/7-v2-270386b7e60b+28f4-umem_1_jgg@nvidia.com
-Tested-by: Gal Pressman <galpress@amazon.com>
-Acked-by: Gal Pressman <galpress@amazon.com>
-Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/infiniband/hw/efa/efa_verbs.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/infiniband/hw/efa/efa_verbs.c b/drivers/infiniband/hw/efa/efa_verbs.c
-index 4edae89e8e3ca..4a8830d3a9599 100644
---- a/drivers/infiniband/hw/efa/efa_verbs.c
-+++ b/drivers/infiniband/hw/efa/efa_verbs.c
-@@ -4,6 +4,7 @@
- */
-
- #include <linux/vmalloc.h>
-+#include <linux/log2.h>
-
- #include <rdma/ib_addr.h>
- #include <rdma/ib_umem.h>
-@@ -1446,9 +1447,8 @@ struct ib_mr *efa_reg_mr(struct ib_pd *ibpd, u64 start, u64 length,
- goto err_unmap;
- }
-
-- params.page_shift = __ffs(pg_sz);
-- params.page_num = DIV_ROUND_UP(length + (start & (pg_sz - 1)),
-- pg_sz);
-+ params.page_shift = order_base_2(pg_sz);
-+ params.page_num = ib_umem_num_dma_blocks(mr->umem, pg_sz);
-
- ibdev_dbg(&dev->ibdev,
- "start %#llx length %#llx params.page_shift %u params.page_num %u\n",
---
-2.25.1
-
xfs-fix-high-key-handling-in-the-rt-allocator-s-quer.patch
rdma-umem-fix-ib_umem_find_best_pgsz-for-mappings-th.patch
rdma-umem-prevent-small-pages-from-being-returned-by.patch
-rdma-efa-use-ib_umem_num_dma_pages.patch
rdma-qedr-fix-qp-structure-memory-leak.patch
rdma-qedr-fix-use-of-uninitialized-field.patch
rdma-qedr-fix-return-code-if-accept-is-called-on-a-d.patch