All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] RDMA/rxe: Pass a pointer to virt_to_page()
@ 2023-03-24 10:32 Linus Walleij
  2023-03-24 12:27 ` kernel test robot
  2023-03-24 13:59 ` Jason Gunthorpe
  0 siblings, 2 replies; 9+ messages in thread
From: Linus Walleij @ 2023-03-24 10:32 UTC (permalink / raw)
  To: Jason Gunthorpe, Leon Romanovsky, Bernard Metzler
  Cc: linux-rdma, Linus Walleij

Like the other calls in this function virt_to_page() expects
a pointer, not an integer.

However since many architectures implement virt_to_pfn() as
a macro, this function becomes polymorphic and accepts both a
(unsigned long) and a (void *).

Fix this up with an explicit cast.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/infiniband/sw/rxe/rxe_mr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c b/drivers/infiniband/sw/rxe/rxe_mr.c
index b10aa1580a64..5c90d83002f0 100644
--- a/drivers/infiniband/sw/rxe/rxe_mr.c
+++ b/drivers/infiniband/sw/rxe/rxe_mr.c
@@ -213,7 +213,7 @@ int rxe_mr_init_fast(int max_pages, struct rxe_mr *mr)
 static int rxe_set_page(struct ib_mr *ibmr, u64 iova)
 {
 	struct rxe_mr *mr = to_rmr(ibmr);
-	struct page *page = virt_to_page(iova & mr->page_mask);
+	struct page *page = virt_to_page((void *)(iova & mr->page_mask));
 	bool persistent = !!(mr->access & IB_ACCESS_FLUSH_PERSISTENT);
 	int err;
 
@@ -288,7 +288,7 @@ static void rxe_mr_copy_dma(struct rxe_mr *mr, u64 iova, void *addr,
 	u8 *va;
 
 	while (length) {
-		page = virt_to_page(iova & mr->page_mask);
+		page = virt_to_page((void *)(iova & mr->page_mask));
 		bytes = min_t(unsigned int, length,
 				PAGE_SIZE - page_offset);
 		va = kmap_local_page(page);
@@ -488,7 +488,7 @@ int rxe_mr_do_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
 
 	if (mr->ibmr.type == IB_MR_TYPE_DMA) {
 		page_offset = iova & (PAGE_SIZE - 1);
-		page = virt_to_page(iova & PAGE_MASK);
+		page = virt_to_page((void *)(iova & PAGE_MASK));
 	} else {
 		unsigned long index;
 		int err;
@@ -545,7 +545,7 @@ int rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value)
 
 	if (mr->ibmr.type == IB_MR_TYPE_DMA) {
 		page_offset = iova & (PAGE_SIZE - 1);
-		page = virt_to_page(iova & PAGE_MASK);
+		page = virt_to_page((void *)(iova & PAGE_MASK));
 	} else {
 		unsigned long index;
 		int err;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-03-30 15:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-24 10:32 [PATCH] RDMA/rxe: Pass a pointer to virt_to_page() Linus Walleij
2023-03-24 12:27 ` kernel test robot
2023-03-24 13:59 ` Jason Gunthorpe
2023-03-29 14:28   ` Linus Walleij
2023-03-29 20:17     ` Bob Pearson
2023-03-29 23:16     ` Jason Gunthorpe
2023-03-30  2:45       ` Bob Pearson
2023-03-30 12:06         ` Jason Gunthorpe
2023-03-30 15:19           ` Linus Walleij

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.