quoted hunk ↗ jump to hunk
+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.