# Re: \[PATCH v1 16/16\] dma-mapping: Disallow .map\_sg operations from returning zero on error

- From: Robin Murphy \<robin.murphy@arm.com\>
- Date: 2021-07-16 12:19:36 
- List: linux-mips
- Page: https://ratatoskr.run/linux-mips/2021/07/1447519
- Thread: https://ratatoskr.run/linux-s390/2021/07/1445836/t.md

```text
On 2021-07-16 07:33, Christoph Hellwig wrote:
> On Thu, Jul 15, 2021 at 10:45:44AM -0600, Logan Gunthorpe wrote:
>> @@ -194,6 +194,8 @@ static int __dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
>>   	else
>>   		ents = ops->map_sg(dev, sg, nents, dir, attrs);
>>   
>> +	WARN_ON_ONCE(ents == 0);
>
> Turns this into a negative error code while we're at it, just to keep
> the callers sane?

Right, by this point returning the 0 would pass through dma_map_sg_attrs() OK, but AFAICS dma_map_sgtable() would now get confused and return success but with sgt->nents = 0. Coercing it to an error code (which dma_map_sg_attrs() would then just change right back) seems sensible for the sake of easy robustness.

Robin.
```
