aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-09-22 19:06:05 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-09-22 19:06:05 -0400
commit9ae0b37e69ca7143cb338f183ce326442c8dd8be (patch)
tree26d7c4ac611ee16915f69954ac98d8e299a35602
parentd21b8ea7d765166bf17da1ad8ab75e81b6087229 (diff)
parentc0d05cde2a685cd6486390c62be684ce456d84d6 (diff)
Merge tag 'iommu-fixes-v4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
Pull IOMMU fixes from Joerg Roedel: - two Kconfig fixes to fix dependencies that cause compile failures when they are not fulfilled. - a section mismatch fix for Intel VT-d - a fix for PCI topology detection in ARM device-tree code * tag 'iommu-fixes-v4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/of: Remove PCI host bridge node check iommu/qcom: Depend on HAS_DMA to fix compile error iommu/vt-d: Fix harmless section mismatch warning iommu: Add missing dependencies
-rw-r--r--drivers/iommu/Kconfig5
-rw-r--r--drivers/iommu/dmar.c2
-rw-r--r--drivers/iommu/of_iommu.c5
3 files changed, 5 insertions, 7 deletions
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index 49bd2ab8c507..f3a21343e636 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -278,7 +278,7 @@ config EXYNOS_IOMMU_DEBUG
278config IPMMU_VMSA 278config IPMMU_VMSA
279 bool "Renesas VMSA-compatible IPMMU" 279 bool "Renesas VMSA-compatible IPMMU"
280 depends on ARM || IOMMU_DMA 280 depends on ARM || IOMMU_DMA
281 depends on ARCH_RENESAS || COMPILE_TEST 281 depends on ARCH_RENESAS || (COMPILE_TEST && !GENERIC_ATOMIC64)
282 select IOMMU_API 282 select IOMMU_API
283 select IOMMU_IO_PGTABLE_LPAE 283 select IOMMU_IO_PGTABLE_LPAE
284 select ARM_DMA_USE_IOMMU 284 select ARM_DMA_USE_IOMMU
@@ -373,7 +373,8 @@ config MTK_IOMMU_V1
373config QCOM_IOMMU 373config QCOM_IOMMU
374 # Note: iommu drivers cannot (yet?) be built as modules 374 # Note: iommu drivers cannot (yet?) be built as modules
375 bool "Qualcomm IOMMU Support" 375 bool "Qualcomm IOMMU Support"
376 depends on ARCH_QCOM || COMPILE_TEST 376 depends on ARCH_QCOM || (COMPILE_TEST && !GENERIC_ATOMIC64)
377 depends on HAS_DMA
377 select IOMMU_API 378 select IOMMU_API
378 select IOMMU_IO_PGTABLE_LPAE 379 select IOMMU_IO_PGTABLE_LPAE
379 select ARM_DMA_USE_IOMMU 380 select ARM_DMA_USE_IOMMU
diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
index ca5ebaeafd6a..57c920c1372d 100644
--- a/drivers/iommu/dmar.c
+++ b/drivers/iommu/dmar.c
@@ -497,7 +497,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg)
497#define dmar_parse_one_rhsa dmar_res_noop 497#define dmar_parse_one_rhsa dmar_res_noop
498#endif 498#endif
499 499
500static void __init 500static void
501dmar_table_print_dmar_entry(struct acpi_dmar_header *header) 501dmar_table_print_dmar_entry(struct acpi_dmar_header *header)
502{ 502{
503 struct acpi_dmar_hardware_unit *drhd; 503 struct acpi_dmar_hardware_unit *drhd;
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index e60e3dba85a0..50947ebb6d17 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -157,10 +157,7 @@ static int of_pci_iommu_init(struct pci_dev *pdev, u16 alias, void *data)
157 157
158 err = of_iommu_xlate(info->dev, &iommu_spec); 158 err = of_iommu_xlate(info->dev, &iommu_spec);
159 of_node_put(iommu_spec.np); 159 of_node_put(iommu_spec.np);
160 if (err) 160 return err;
161 return err;
162
163 return info->np == pdev->bus->dev.of_node;
164} 161}
165 162
166const struct iommu_ops *of_iommu_configure(struct device *dev, 163const struct iommu_ops *of_iommu_configure(struct device *dev,