* Re: [PATCH] arm: dma-mapping: fix compilation error when CONFIG_MMU is not present [not found] ` <5445A345.7010401-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2014-10-23 8:15 ` Marek Szyprowski 2014-10-24 13:15 ` Stefan Hengelein 0 siblings, 1 reply; 3+ messages in thread From: Marek Szyprowski @ 2014-10-23 8:15 UTC (permalink / raw) To: Laura Abbott, Stefan Hengelein Cc: linux-lFZ/pmaqli7XmaaqVzeoHQ, linux-kernel-u79uwXL29TY76Z2rM5mHXA, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Valentin Rothberg 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 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] arm: dma-mapping: fix compilation error when CONFIG_MMU is not present 2014-10-23 8:15 ` [PATCH] arm: dma-mapping: fix compilation error when CONFIG_MMU is not present Marek Szyprowski @ 2014-10-24 13:15 ` Stefan Hengelein [not found] ` <CABv5NL_E83CgBcHbAqo9xejWAEamO3oxX6ZjU+fo9X6k4cE_1w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Stefan Hengelein @ 2014-10-24 13:15 UTC (permalink / raw) To: Marek Szyprowski, Laura Abbott Cc: linux-kernel, linux, akpm, linux-arm-kernel, Valentin Rothberg, iommu Hello, adding a dependency to CONFIG_ARM_DMA_USE_IOMMU is probably not a good idea anyways. If you read the Documentation/kbuild/kconfig-language.txt, you will see that: 1. in general, selected options should have no prompt and no dependencies 2. giving ARM_DMA_USE_IOMMU a dependency on MMU will and cannot solve the problem, since ARM_DMA_USE_IOMMU itself is selected by several sources and select will not enforce dependencies to be resolved (to be precise, it will simply ignore them). Thus, CONFIG_MMU will not be enabled (as you can see in your warning). If you want to ensure CONFIG_MMU is enabled when CONFIG_ARM_DMA_USE_IOMMU is selected, the selecting options (e.g. SHMOBILE_IOMMU) should have a dependency on MMU. However, i'm not sure if that's the right way to solve it, since it will hide these options when MMU is not enabled. Making the whole IOMMU subsystem depend on MMU would probably also solve the problem. Is there any situation where it would make sense to use an IOMMU without an MMU? Best Regards, Stefan Hengelein 2014-10-23 10:15 GMT+02:00 Marek Szyprowski <m.szyprowski@samsung.com>: > 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 > ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <CABv5NL_E83CgBcHbAqo9xejWAEamO3oxX6ZjU+fo9X6k4cE_1w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH] arm: dma-mapping: fix compilation error when CONFIG_MMU is not present [not found] ` <CABv5NL_E83CgBcHbAqo9xejWAEamO3oxX6ZjU+fo9X6k4cE_1w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2014-10-27 11:59 ` Marek Szyprowski 0 siblings, 0 replies; 3+ messages in thread From: Marek Szyprowski @ 2014-10-27 11:59 UTC (permalink / raw) To: Stefan Hengelein, Laura Abbott Cc: linux-lFZ/pmaqli7XmaaqVzeoHQ, linux-kernel-u79uwXL29TY76Z2rM5mHXA, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Valentin Rothberg Hello, On 2014-10-24 15:15, Stefan Hengelein wrote: > Hello, > > adding a dependency to CONFIG_ARM_DMA_USE_IOMMU is probably not a good > idea anyways. > If you read the Documentation/kbuild/kconfig-language.txt, you will see that: > 1. in general, selected options should have no prompt and no dependencies > 2. giving ARM_DMA_USE_IOMMU a dependency on MMU will and cannot solve > the problem, since ARM_DMA_USE_IOMMU itself is selected by several > sources and select will not enforce dependencies to be resolved (to be > precise, it will simply ignore them). Thus, CONFIG_MMU will not be > enabled (as you can see in your warning). > If you want to ensure CONFIG_MMU is enabled when > CONFIG_ARM_DMA_USE_IOMMU is selected, the selecting options (e.g. > SHMOBILE_IOMMU) should have a dependency on MMU. > However, i'm not sure if that's the right way to solve it, since it > will hide these options when MMU is not enabled. > > Making the whole IOMMU subsystem depend on MMU would probably also > solve the problem. Is there any situation where it would make sense to > use an IOMMU without an MMU? IMHO such configuration doesn't make sense and hiding IOMMU section completely when non-MMU systems are enabled is the right approach. Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-10-27 11:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1413734340-53108-1-git-send-email-stefan.hengelein@fau.de>
[not found] ` <5444BCFF.8030803@samsung.com>
[not found] ` <CABv5NL_GdtZegpw8wxau9oD6xXWdX3GUySLqCaoaoa549Kg_GQ@mail.gmail.com>
[not found] ` <5445A345.7010401@codeaurora.org>
[not found] ` <5445A345.7010401-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2014-10-23 8:15 ` [PATCH] arm: dma-mapping: fix compilation error when CONFIG_MMU is not present Marek Szyprowski
2014-10-24 13:15 ` Stefan Hengelein
[not found] ` <CABv5NL_E83CgBcHbAqo9xejWAEamO3oxX6ZjU+fo9X6k4cE_1w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-10-27 11:59 ` Marek Szyprowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox