From 29d50e2ede087618cf9666096d69695ac177bb39 Mon Sep 17 00:00:00 2001 From: Mike Marciniszyn Date: Mon, 21 Jan 2013 12:57:19 -0500 Subject: [PATCH] IB/rds: correct IB api usage This ports upstream commit b1b6cb4. Signed-off-by: Mike Marciniszyn --- .../0035-RDMA-rds-api-use-correction.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 linux-next-pending/0035-RDMA-rds-api-use-correction.patch diff --git a/linux-next-pending/0035-RDMA-rds-api-use-correction.patch b/linux-next-pending/0035-RDMA-rds-api-use-correction.patch new file mode 100644 index 0000000..23fd969 --- /dev/null +++ b/linux-next-pending/0035-RDMA-rds-api-use-correction.patch @@ -0,0 +1,42 @@ +commit b1b6cb4d2ae56c90275fed7ae0e18fd1058a16be +Author: Mike Marciniszyn +Date: Fri Dec 21 12:15:47 2012 -0500 + + IB/rds: Correct ib_api use with gs_dma_address/sg_dma_len + + 0b088e00 ("RDS: Use page_remainder_alloc() for recv bufs") + added uses of sg_dma_len() and sg_dma_address(). This makes + RDS DOA with the qib driver. + + IB ulps should use ib_sg_dma_len() and ib_sg_dma_address + respectively since some HCAs overload ib_sg_dma* operations. + + Signed-off-by: Mike Marciniszyn + +diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c +index 8c5bc85..8eb9501 100644 +--- a/net/rds/ib_recv.c ++++ b/net/rds/ib_recv.c +@@ -339,8 +339,8 @@ static int rds_ib_recv_refill_one(struct rds_connection *conn, + sge->length = sizeof(struct rds_header); + + sge = &recv->r_sge[1]; +- sge->addr = sg_dma_address(&recv->r_frag->f_sg); +- sge->length = sg_dma_len(&recv->r_frag->f_sg); ++ sge->addr = ib_sg_dma_address(ic->i_cm_id->device, &recv->r_frag->f_sg); ++ sge->length = ib_sg_dma_len(ic->i_cm_id->device, &recv->r_frag->f_sg); + + ret = 0; + out: +@@ -381,7 +381,10 @@ void rds_ib_recv_refill(struct rds_connection *conn, int prefill) + ret = ib_post_recv(ic->i_cm_id->qp, &recv->r_wr, &failed_wr); + rdsdebug("recv %p ibinc %p page %p addr %lu ret %d\n", recv, + recv->r_ibinc, sg_page(&recv->r_frag->f_sg), +- (long) sg_dma_address(&recv->r_frag->f_sg), ret); ++ (long) ib_sg_dma_address( ++ ic->i_cm_id->device, ++ &recv->r_frag->f_sg), ++ ret); + if (ret) { + rds_ib_conn_error(conn, "recv post on " + "%pI4 returned %d, disconnecting and " -- 2.41.0