diff options
author | Will Deacon <will.deacon@arm.com> | 2017-06-23 11:45:57 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2017-06-23 17:58:02 +0100 |
commit | c1004803b40596c1aabbbc78a6b1b33e4dfd96c6 (patch) | |
tree | 351de9d04fb88b9e2b9121080ca0a67bd859a53d | |
parent | 58188afeb727e0f73706f1460707bd3ba6ccc221 (diff) | |
download | blackbird-op-linux-c1004803b40596c1aabbbc78a6b1b33e4dfd96c6.tar.gz blackbird-op-linux-c1004803b40596c1aabbbc78a6b1b33e4dfd96c6.zip |
iommu/io-pgtable: depend on !GENERIC_ATOMIC64 when using COMPILE_TEST with LPAE
The LPAE/ARMv8 page table format relies on the ability to read and write
64-bit page table entries in an atomic fashion. With the move to a lockless
implementation, we also need support for cmpxchg64 to resolve races when
installing table entries concurrently.
Unfortunately, not all architectures support cmpxchg64, so the code can
fail to compiler when building for these architectures using COMPILE_TEST.
Rather than disable COMPILE_TEST altogether, instead check that
GENERIC_ATOMIC64 is not selected, which is a reasonable indication that
the architecture has support for 64-bit cmpxchg.
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
-rw-r--r-- | drivers/iommu/Kconfig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index 6ee3a25ae731..c88cfa7522b2 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -23,7 +23,7 @@ config IOMMU_IO_PGTABLE config IOMMU_IO_PGTABLE_LPAE bool "ARMv7/v8 Long Descriptor Format" select IOMMU_IO_PGTABLE - depends on HAS_DMA && (ARM || ARM64 || COMPILE_TEST) + depends on HAS_DMA && (ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64)) help Enable support for the ARM long descriptor pagetable format. This allocator supports 4K/2M/1G, 16K/32M and 64K/512M page |