Loading net/rds/ib_recv.c +2 −20 Original line number Diff line number Diff line Loading @@ -51,24 +51,6 @@ static void rds_ib_frag_free(struct rds_page_frag *frag) kmem_cache_free(rds_ib_frag_slab, frag); } /* * We map a page at a time. Its fragments are posted in order. This * is called in fragment order as the fragments get send completion events. * Only the last frag in the page performs the unmapping. * * It's OK for ring cleanup to call this in whatever order it likes because * DMA is not in flight and so we can unmap while other ring entries still * hold page references in their frags. */ static void rds_ib_recv_unmap_page(struct rds_ib_connection *ic, struct rds_ib_recv_work *recv) { struct rds_page_frag *frag = recv->r_frag; rdsdebug("recv %p frag %p page %p\n", recv, frag, sg_page(&frag->f_sg)); ib_dma_unmap_sg(ic->i_cm_id->device, &frag->f_sg, 1, DMA_FROM_DEVICE); } void rds_ib_recv_init_ring(struct rds_ib_connection *ic) { struct rds_ib_recv_work *recv; Loading Loading @@ -105,7 +87,7 @@ static void rds_ib_recv_clear_one(struct rds_ib_connection *ic, recv->r_ibinc = NULL; } if (recv->r_frag) { rds_ib_recv_unmap_page(ic, recv); ib_dma_unmap_sg(ic->i_cm_id->device, &recv->r_frag->f_sg, 1, DMA_FROM_DEVICE); rds_ib_frag_free(recv->r_frag); recv->r_frag = NULL; } Loading Loading @@ -768,7 +750,7 @@ static inline void rds_poll_cq(struct rds_ib_connection *ic, recv = &ic->i_recvs[rds_ib_ring_oldest(&ic->i_recv_ring)]; rds_ib_recv_unmap_page(ic, recv); ib_dma_unmap_sg(ic->i_cm_id->device, &recv->r_frag->f_sg, 1, DMA_FROM_DEVICE); /* * Also process recvs in connecting state because it is possible Loading Loading
net/rds/ib_recv.c +2 −20 Original line number Diff line number Diff line Loading @@ -51,24 +51,6 @@ static void rds_ib_frag_free(struct rds_page_frag *frag) kmem_cache_free(rds_ib_frag_slab, frag); } /* * We map a page at a time. Its fragments are posted in order. This * is called in fragment order as the fragments get send completion events. * Only the last frag in the page performs the unmapping. * * It's OK for ring cleanup to call this in whatever order it likes because * DMA is not in flight and so we can unmap while other ring entries still * hold page references in their frags. */ static void rds_ib_recv_unmap_page(struct rds_ib_connection *ic, struct rds_ib_recv_work *recv) { struct rds_page_frag *frag = recv->r_frag; rdsdebug("recv %p frag %p page %p\n", recv, frag, sg_page(&frag->f_sg)); ib_dma_unmap_sg(ic->i_cm_id->device, &frag->f_sg, 1, DMA_FROM_DEVICE); } void rds_ib_recv_init_ring(struct rds_ib_connection *ic) { struct rds_ib_recv_work *recv; Loading Loading @@ -105,7 +87,7 @@ static void rds_ib_recv_clear_one(struct rds_ib_connection *ic, recv->r_ibinc = NULL; } if (recv->r_frag) { rds_ib_recv_unmap_page(ic, recv); ib_dma_unmap_sg(ic->i_cm_id->device, &recv->r_frag->f_sg, 1, DMA_FROM_DEVICE); rds_ib_frag_free(recv->r_frag); recv->r_frag = NULL; } Loading Loading @@ -768,7 +750,7 @@ static inline void rds_poll_cq(struct rds_ib_connection *ic, recv = &ic->i_recvs[rds_ib_ring_oldest(&ic->i_recv_ring)]; rds_ib_recv_unmap_page(ic, recv); ib_dma_unmap_sg(ic->i_cm_id->device, &recv->r_frag->f_sg, 1, DMA_FROM_DEVICE); /* * Also process recvs in connecting state because it is possible Loading