diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-22 19:06:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-22 19:06:05 -0400 |
commit | 9ae0b37e69ca7143cb338f183ce326442c8dd8be (patch) | |
tree | 26d7c4ac611ee16915f69954ac98d8e299a35602 | |
parent | d21b8ea7d765166bf17da1ad8ab75e81b6087229 (diff) | |
parent | c0d05cde2a685cd6486390c62be684ce456d84d6 (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/Kconfig | 5 | ||||
-rw-r--r-- | drivers/iommu/dmar.c | 2 | ||||
-rw-r--r-- | drivers/iommu/of_iommu.c | 5 |
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 | |||
278 | config IPMMU_VMSA | 278 | config 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 | |||
373 | config QCOM_IOMMU | 373 | config 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 | ||
500 | static void __init | 500 | static void |
501 | dmar_table_print_dmar_entry(struct acpi_dmar_header *header) | 501 | dmar_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 | ||
166 | const struct iommu_ops *of_iommu_configure(struct device *dev, | 163 | const struct iommu_ops *of_iommu_configure(struct device *dev, |