Thread (99 messages) 99 messages, 6 authors, 2021-05-11

Re: [PATCH 05/16] dma-mapping: Introduce dma_map_sg_p2pdma()

From: Jason Gunthorpe <jgg@ziepe.ca>
Date: 2021-04-27 19:32:02
Also in: linux-iommu, linux-mm, linux-nvme, linux-pci, lkml

On Thu, Apr 08, 2021 at 11:01:12AM -0600, Logan Gunthorpe wrote:
+/*
+ * dma_maps_sg_attrs returns 0 on error and > 0 on success.
+ * It should never return a value < 0.
+ */
Also it is weird a function that can't return 0 is returning an int type
+int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg, int nents,
+		enum dma_data_direction dir, unsigned long attrs)
+{
+	int ents;
+
+	ents = __dma_map_sg_attrs(dev, sg, nents, dir, attrs);
 	BUG_ON(ents < 0);
if (WARN_ON(ents < 0))
     return 0;

instead of bug on?

Also, I see only 8 users of this function. How about just fix them all
to support negative returns and use this as the p2p API instead of
adding new API?

Add the opposite logic flag, 'DMA_ATTRS_NO_ERROR' and pass it through
the other api entry callers that can't handle it?

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help