Re: [PATCH] arm: dma-mapping: fix compilation error when CONFIG_MMU is not present

From: Marek Szyprowski
Date: Thu Oct 23 2014 - 04:15:57 EST


Hello,

On 2014-10-21 02:05, Laura Abbott wrote:
On 10/20/2014 6:50 AM, Stefan Hengelein wrote:
Well,

arch/arm/mm/dma-mapping.c: In function â__atomic_get_pagesâ:
arch/arm/mm/dma-mapping.c:1265:31: error: âatomic_poolâ undeclared
(first use in this function)

arch/arm/mm/dma-mapping.c: In function â__iommu_get_pagesâ:
arch/arm/mm/dma-mapping.c:1275:2: error: implicit declaration of
function â__in_atomic_poolâ [-Werror=implicit-function-declaration]


others:
arch/arm/mm/dma-mapping.c: In function â__iommu_alloc_remapâ:
arch/arm/mm/dma-mapping.c:1200:4: error: âVM_ARM_DMA_CONSISTENTâ
undeclared (first use in this function)
arch/arm/mm/dma-mapping.c:1200:4: note: each undeclared identifier is
reported only once for each function it appears in

arch/arm/mm/dma-mapping.c: In function â__iommu_get_pagesâ:
arch/arm/mm/dma-mapping.c:1282:29: error: âVM_ARM_DMA_CONSISTENTâ
undeclared (first use in this function)
arch/arm/mm/dma-mapping.c: In function âarm_iommu_free_attrsâ:
arch/arm/mm/dma-mapping.c:1411:4: error: âVM_ARM_DMA_CONSISTENTâ
undeclared (first use in this function)


i've attached a configuration where it happens.
when you place the configuration in your tree and compile the file,
the errors should show up.

However, within the configuration CONFIG_ARM_DMA_USE_IOMMU is defined
and CONFIG_MMU is not. AFAIUI, if both should be enabled together, it
should be mapped in Kconfig somewhere, right?

There isn't a nice way to fixup the dma consistent flags so I would
say this option should just depend on MMU.

The question is which option should depend on MMU? Making CONFIG_ARM_DMA_USE_IOMMU
to depend on MMU doesn't solve this case. It only gives following warning with the
mentioned .config:
warning: (VIDEO_OMAP3 && EXYNOS_IOMMU && SHMOBILE_IOMMU && IPMMU_VMSA && ARM_SMMU) selects ARM_DMA_USE_IOMMU which has unmet direct dependencies (MMU)

IMHO the best solution will be to either make the whole IOMMU subsystem to depend
on MMU or alternatively, add this dependency to all IOMMU drivers which can be
enabled by COMPILE_TEST option (here the issue is caused by SHMOBILE_IOMMU, which
otherwise cannot be enabled when no-mmu systems are selected).

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/