> On Feb 12, 2020, at 2:05 PM, Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > On Wed, Feb 12, 2020 at 01:38:59PM -0500, Chuck Lever wrote: >> >>> On Feb 12, 2020, at 1:26 PM, Jason Gunthorpe <jgg@xxxxxxxx> wrote: >>> >>> On Wed, Feb 12, 2020 at 11:12:30AM -0500, Chuck Lever wrote: >>>> The @nents value that was passed to ib_dma_map_sg() has to be passed >>>> to the matching ib_dma_unmap_sg() call. If ib_dma_map_sg() choses to >>>> concatenate sg entries, it will return a different nents value than >>>> it was passed. >>>> >>>> The bug was exposed by recent changes to the AMD IOMMU driver, which >>>> enabled sg entry concatenation. >>>> >>>> Looking all the way back to commit 4143f34e01e9 ("xprtrdma: Port to >>>> new memory registration API") and reviewing other kernel ULPs, it's >>>> not clear that the frwr_map() logic was ever correct for this case. >>>> >>>> Reported-by: Andre Tomt <andre@xxxxxxxx> >>>> Suggested-by: Robin Murphy <robin.murphy@xxxxxxx> >>>> Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> >>>> Cc: stable@xxxxxxxxxxxxxxx # v5.5 >>>> net/sunrpc/xprtrdma/frwr_ops.c | 13 +++++++------ >>>> 1 file changed, 7 insertions(+), 6 deletions(-) >>> >>> Yep >>> >>> Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx> >> >> Thanks. >> >> Wondering if it makes sense to add a Fixes tag for the AMD IOMMU commit >> where NFS/RDMA stopped working, rather than the "Cc: stable # v5.5". >> >> Fixes: be62dbf554c5 ("iommu/amd: Convert AMD iommu driver to the dma-iommu api") > > Not really, this was broken for other configurations besides AMD Agreed, but the bug seems to have been inconsequential until now? Otherwise we should explore backporting farther into the past. -- Chuck Lever