Russell King - ARM Linux
2018-Apr-25 10:25 UTC
[Nouveau] [PATCH v2 5/5] ARM: Unconditionally enable ARM_DMA_USE_IOMMU
On Wed, Apr 25, 2018 at 12:10:51PM +0200, Thierry Reding wrote:> From: Thierry Reding <treding at nvidia.com> > > The ARM_DMA_USE_IOMMU Kconfig option has side-effects that drivers can > not opt into but have to explicitly opt out of. This can lead to subtle > bugs that are difficult to track down and not immediately obvious to be > related to this Kconfig option. > > To avoid this confusion, always enable the option to expose any lurking > bugs once and allow any regressions introduced by the DMA/IOMMU code to > be caught more quickly in the future. > > Note that some drivers still use the Kconfig symbol to provide different > code paths depending on what architecture the code runs on (e.g. 32-bit > ARM vs. 64-bit ARM which have different and incompatible implementations > of the DMA/IOMMU integration code), so leave the symbol in place to keep > those drivers working. > > For the long term, it is preferable to transition everyone to the > generic DMA/IOMMU integration code in drivers/iommu/dma-iommu.c. > > Signed-off-by: Thierry Reding <treding at nvidia.com> > --- > Changes in v2: > - new patch > > arch/arm/Kconfig | 2 +- > arch/arm/include/asm/device.h | 6 ------ > arch/arm/mm/dma-mapping.c | 18 ------------------ > drivers/iommu/Kconfig | 7 ------- > drivers/media/platform/Kconfig | 1 - > 5 files changed, 1 insertion(+), 33 deletions(-) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index fa0b190f8a38..3c91de78535a 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -124,7 +124,7 @@ config NEED_SG_DMA_LENGTH > bool > > config ARM_DMA_USE_IOMMU > - bool > + def_bool y > select ARM_HAS_SG_CHAIN > select NEED_SG_DMA_LENGTHThis doesn't work - as has recently been discussed with hch, we can't globally enable NEED_SG_DMA_LENGTH on ARM - the ARM architecture pre-dates the addition of the DMA length member in the scatterlist, and not every machine supports the splitting of the DMA length from the non-DMA length member. Hence, this will cause a regression, sorry. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up According to speedtest.net: 8.21Mbps down 510kbps up
Christoph Hellwig
2018-Apr-25 15:17 UTC
[Nouveau] [PATCH v2 5/5] ARM: Unconditionally enable ARM_DMA_USE_IOMMU
On Wed, Apr 25, 2018 at 11:25:11AM +0100, Russell King - ARM Linux wrote:> > config ARM_DMA_USE_IOMMU > > - bool > > + def_bool y > > select ARM_HAS_SG_CHAIN > > select NEED_SG_DMA_LENGTH > > This doesn't work - as has recently been discussed with hch, we can't > globally enable NEED_SG_DMA_LENGTH on ARM - the ARM architecture > pre-dates the addition of the DMA length member in the scatterlist, > and not every machine supports the splitting of the DMA length from > the non-DMA length member. Hence, this will cause a regression, > sorry.Agreed as-is. However supporting it everywhere should not be much work, I'll take a look at it.
Seemingly Similar Threads
- [PATCH v2 5/5] ARM: Unconditionally enable ARM_DMA_USE_IOMMU
- [PATCH v2 5/5] ARM: Unconditionally enable ARM_DMA_USE_IOMMU
- [PATCH v6 3/9] s390/dma: Allow per device dma ops
- [GIT PULL v4 3/3] s390/dma: Allow per device dma ops
- [PATCH v2 1/5] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping