> +int dma_map_sgtable(struct device *dev, struct sg_table *sgt, > + enum dma_data_direction dir, unsigned long attrs) > +{ > + int nents; > + > + nents = __dma_map_sg_attrs(dev, sgt->sgl, sgt->orig_nents, dir, attrs); > + if (nents == 0) > + return -EIO; > + else if (nents < 0) { > + if (WARN_ON_ONCE(nents != -EINVAL && nents != -ENOMEM && > + nents != -EIO)) > + return -EIO; I think this validation of the errnos needs to go into __dma_map_sg_attrs, so that we catch it for the classic dma_map_sg callers as well.