diff --git a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h index d3d25fcce85..7f2579787b4 100644 --- a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h +++ b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h @@ -362,7 +362,14 @@ dma_map_sgtable(struct device *dev, struct sg_table *sgt, unsigned long attrs) { - return (dma_map_sg_attrs(dev, sgt->sgl, sgt->nents, dir, attrs)); + int nents = dma_map_sg_attrs(dev, sgt->sgl, sgt->nents, dir, attrs); + + if (nents < 0) { + return nents; + } else { + sgt->nents = nents; + return 0; + } } static inline void