I am using 4.14-rc4 with a patch on top that includes arch/arm/include/asm/dma-mapping.h in a module.
I have MMU enabled, so select DMA_NOOP_OPS if !MMU does nothing for me, and I get a compile error because dma_noop_ops is unknown. Maybe I should include linux/dma-mapping.h? Thanks for the quick reply. On Mon, Oct 16, 2017 at 2:28 PM, Randy Dunlap <rdun...@infradead.org> wrote: > On 10/15/17 20:29, Randy Dunlap wrote: >> On 10/15/17 20:27, Randy Dunlap wrote: >>> On 10/15/17 19:27, Marian Mihailescu wrote: >>>> After commit 7844572c633964c864d9f32dc3f2a8ffe5d70371, dma_noop_ops >>>> are built only for architectures that use it. >>>> >>>> For ARM architecture, CONFIG_DMA_NOOP_OPS is not selected, and cannot >>>> be selected. > > What kernel version are you looking at? > I see that it is selected: > > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -22,6 +22,7 @@ config ARM > select CLONE_BACKWARDS > select CPU_PM if (SUSPEND || CPU_IDLE) > select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS > + select DMA_NOOP_OPS if !MMU > select EDAC_SUPPORT > select EDAC_ATOMIC_SCRUB > select GENERIC_ALLOCATOR > > > That's in commit ID 1c51c429f30ea10428337f3a33c12059ba59f668 from May 24, > 2017. > >>>> However, arch/arm/include/asm/dma-mapping.h is referencing dma_noop_ops: >>>> >>>> static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type >>>> *bus) >>>> { >>>> return IS_ENABLED(CONFIG_MMU) ? &arm_dma_ops : &dma_noop_ops; >>>> } >>>> >>>> I will let a maintainer suggest the best resolution for this :) >>>> >>> >>> add Bart and iommu mailing list. >>> >> >> and add Vladimir. >> >> > > > -- > ~Randy