Thread (25 messages) 25 messages, 2 authors, 2021-05-18

Re: [PATCH v6 08/15] swiotlb: Bounce data from/to restricted DMA pool if available

From: Claire Chang <hidden>
Date: 2021-05-11 16:42:43
Also in: dri-devel, intel-gfx, linux-devicetree, linux-iommu, linux-pci, lkml, nouveau, xen-devel

On Mon, May 10, 2021 at 11:05 PM Christoph Hellwig [off-list ref] wrote:
quoted
+static inline bool is_dev_swiotlb_force(struct device *dev)
+{
+#ifdef CONFIG_DMA_RESTRICTED_POOL
+     if (dev->dma_io_tlb_mem)
+             return true;
+#endif /* CONFIG_DMA_RESTRICTED_POOL */
+     return false;
+}
+
quoted
      /* If SWIOTLB is active, use its maximum mapping size */
      if (is_swiotlb_active(dev) &&
-         (dma_addressing_limited(dev) || swiotlb_force == SWIOTLB_FORCE))
+         (dma_addressing_limited(dev) || swiotlb_force == SWIOTLB_FORCE ||
+          is_dev_swiotlb_force(dev)))
This is a mess.  I think the right way is to have an always_bounce flag
in the io_tlb_mem structure instead.  Then the global swiotlb_force can
go away and be replace with this and the fact that having no
io_tlb_mem structure at all means forced no buffering (after a little
refactoring).
Will do in the next version.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help