I'm also still curious about this: On Tue, May 20, 2008 at 08:46:08PM -0400, bfields wrote: > On Sun, May 18, 2008 at 07:13:18PM -0500, Tom Tucker wrote: > > @@ -181,14 +170,20 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp, > > > > /* Copy the remaining SGE */ > > while (bc != 0 && xdr_sge_no < sge_count) { > > - sge[sge_no].addr = xdr_sge[xdr_sge_no].addr + sge_off; > > sge[sge_no].lkey = xdr_sge[xdr_sge_no].lkey; > > sge_bytes = min((size_t)bc, > > (size_t)(xdr_sge[xdr_sge_no].length-sge_off)); > > sge[sge_no].length = sge_bytes; > > - > > + sge[sge_no].addr = > > + ib_dma_map_single(xprt->sc_cm_id->device, > > + (void *) > > + xdr_sge[xdr_sge_no].addr + sge_off, > > + sge_bytes, DMA_TO_DEVICE); > > + if (dma_mapping_error(sge[sge_no].addr)) > > + return -EINVAL; > > And then here we're casting the u64 back to a void *. Also, we're > adding sge_off to the input, instead of to the result. Is it true that > that > > ib_dma_map_single(., x + sge_off, ., .) > > and > > ib_dma_map_single(., x, ., .) + sge_off > > always have the same result? > > --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html