• Geert Uytterhoeven's avatar
    iommu/qcom: Depend on HAS_DMA to fix compile error · 986a5f70
    Geert Uytterhoeven authored
    If NO_DMA=y:
    
        warning: (IPMMU_VMSA && ARM_SMMU && ARM_SMMU_V3 && QCOM_IOMMU) selects IOMMU_IO_PGTABLE_LPAE which has unmet direct dependencies (IOMMU_SUPPORT && HAS_DMA && (ARM || ARM64 || COMPILE_TEST && !GENERIC_ATOMIC64))
    
    and
    
        drivers/iommu/io-pgtable-arm.o: In function `__arm_lpae_sync_pte':
        io-pgtable-arm.c:(.text+0x206): undefined reference to `bad_dma_ops'
        drivers/iommu/io-pgtable-arm.o: In function `__arm_lpae_free_pages':
        io-pgtable-arm.c:(.text+0x6a6): undefined reference to `bad_dma_ops'
        drivers/iommu/io-pgtable-arm.o: In function `__arm_lpae_alloc_pages':
        io-pgtable-arm.c:(.text+0x812): undefined reference to `bad_dma_ops'
        io-pgtable-arm.c:(.text+0x81c): undefined reference to `bad_dma_ops'
        io-pgtable-arm.c:(.text+0x862): undefined reference to `bad_dma_ops'
        drivers/iommu/io-pgtable-arm.o: In function `arm_lpae_run_tests':
        io-pgtable-arm.c:(.init.text+0x86): undefined reference to `alloc_io_pgtable_ops'
        io-pgtable-arm.c:(.init.text+0x47c): undefined reference to `free_io_pgtable_ops'
        drivers/iommu/qcom_iommu.o: In function `qcom_iommu_init_domain':
        qcom_iommu.c:(.text+0x1ce): undefined reference to `alloc_io_pgtable_ops'
        drivers/iommu/qcom_iommu.o: In function `qcom_iommu_domain_free':
        qcom_iommu.c:(.text+0x754): undefined reference to `free_io_pgtable_ops'
    
    QCOM_IOMMU selects IOMMU_IO_PGTABLE_LPAE, which bypasses its dependency
    on HAS_DMA.  Make QCOM_IOMMU depend on HAS_DMA to fix this.
    
    Fixes: 0ae349a0 ("iommu/qcom: Add qcom_iommu")
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    986a5f70
Kconfig 11.2 KB