> +/** > + * ib_map_mr_sg() - Populates MR with a dma mapped SG list > + * @mr: memory region > + * @sg: dma mapped scatterlist > + * @sg_nents: number of entries in sg > + * @access: access permissions I know moving the access flags here was my idea originally, but I seem convinced by your argument that it might fit in better with the posting helper. Or did someone else come up with a better argument that mine for moving it here? > +int ib_map_mr_sg(struct ib_mr *mr, > + struct scatterlist *sg, > + unsigned short sg_nents, > + unsigned int access) > +{ > + int rc; > + > + if (!mr->device->map_mr_sg) > + return -ENOSYS; > + > + rc = mr->device->map_mr_sg(mr, sg, sg_nents); Do we really need a driver callout here? It seems like we should just do the map here, and then either have a flag for the mlx5 indirect mapping, or if you want to keep the abstraction add the method at that point but make it optional, so that all the other drivers don't need the boilerplate code. Also it seems like this returns 0/-error. How do callers like SRP see that it only did a partial mapping and it needs another MR? -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html