Linus Torvalds
e16c4790de
Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and dma_direct_{alloc,free}()"
...
This reverts commit b468620f2a .
It turns out that this broke drm on AMD platforms. Quoting Gabriel C:
"I can confirm reverting b468620f2a fixes
that issue for me.
The GPU is working fine with SME enabled.
Now with working GPU :) I can also confirm performance is back to
normal without doing any other workarounds"
Christan König analyzed it partially:
"As far as I analyzed it we now get an -ENOMEM from dma_alloc_attrs()
in drivers/gpu/drm/ttm/ttm_page_alloc_dma.c when IOMMU is enabled"
and Christoph Hellwig responded:
"I think the prime issue is that dma_direct_alloc respects the dma
mask. Which we don't need if actually using the iommu. This would be
mostly harmless exept for the the SEV bit high in the address that
makes the checks fail.
For now I'd say revert this commit for 4.17/4.18-rc and I'll look into
addressing these issues properly"
Reported-and-bisected-by: Gabriel C <nix.or.die@gmail.com>
Acked-by: Christoph Hellwig <hch@lst.de>
Cc: Christian König <christian.koenig@amd.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Cc: Joerg Roedel <jroedel@suse.de>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: stable@kernel.org # v4.17
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-06-11 12:22:12 -07:00
..
amd_iommu.c
Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and dma_direct_{alloc,free}()"
2018-06-11 12:22:12 -07:00
amd_iommu_init.c
iommu/amd: Use raw locks on atomic context paths
2018-02-13 14:18:06 +01:00
amd_iommu_proto.h
IOMMU Updates for Linux v4.14
2017-09-09 15:03:24 -07:00
amd_iommu_types.h
iommu/amd: Update logging information for new event type
2018-05-03 16:33:18 +02:00
amd_iommu_v2.c
pci-v4.16-changes
2018-02-06 09:59:40 -08:00
arm-smmu-regs.h
arm-smmu-v3.c
iommu/arm-smmu-v3: Support 52-bit virtual address
2018-03-27 14:12:06 +01:00
arm-smmu.c
iommu: Clean up of_iommu_init_fn
2018-01-17 15:25:50 +01:00
dma-iommu.c
iommu/dma: Move PCI window region reservation back into dma specific path.
2018-05-03 16:32:10 +02:00
dmar.c
Merge branches 'arm/io-pgtable', 'arm/qcom', 'arm/tegra', 'x86/vt-d', 'x86/amd' and 'core' into next
2018-05-29 16:58:17 +02:00
exynos-iommu.c
IOMMU Updates for Linux v4.17
2018-04-11 18:50:41 -07:00
fsl_pamu.c
Merge branches 'arm/exynos', 'arm/renesas', 'arm/rockchip', 'arm/omap', 'arm/mediatek', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd', 's390' and 'core' into next
2017-09-01 11:31:42 +02:00
fsl_pamu.h
fsl_pamu_domain.c
Merge branches 'arm/exynos', 'arm/renesas', 'arm/rockchip', 'arm/omap', 'arm/mediatek', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd', 's390' and 'core' into next
2017-09-01 11:31:42 +02:00
fsl_pamu_domain.h
intel-iommu.c
IOMMU Updates for Linux v4.18
2018-06-08 10:44:33 -07:00
intel-svm.c
iommu/vt-d: Remove unnecessary parentheses
2018-05-15 16:34:53 +02:00
intel_irq_remapping.c
irq_remapping: Use apic_ack_irq()
2018-06-06 15:18:20 +02:00
io-pgtable-arm-v7s.c
iommu/io-pgtable-arm: Use for_each_set_bit to simplify code
2018-05-03 15:31:07 +02:00
io-pgtable-arm.c
iommu/io-pgtable-arm: Make allocations NUMA-aware
2018-05-29 16:57:58 +02:00
io-pgtable.c
io-pgtable.h
iommu/io-pgtable: Use size_t return type for all foo_unmap
2018-02-13 19:31:32 +01:00
iommu-sysfs.c
iommu-traces.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
iommu.c
iommu: Clean up the comments for iommu_group_alloc
2018-05-15 16:34:59 +02:00
iova.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
ipmmu-vmsa.c
iommu: Clean up of_iommu_init_fn
2018-01-17 15:25:50 +01:00
irq_remapping.c
irq_remapping: Use apic_ack_irq()
2018-06-06 15:18:20 +02:00
irq_remapping.h
irq_remapping: Use apic_ack_irq()
2018-06-06 15:18:20 +02:00
Kconfig
Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and dma_direct_{alloc,free}()"
2018-06-11 12:22:12 -07:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
msm_iommu.c
iommu: Clean up of_iommu_init_fn
2018-01-17 15:25:50 +01:00
msm_iommu.h
msm_iommu_hw-8xxx.h
mtk_iommu.c
iommu/mediatek: Fix protect memory setting
2018-03-21 06:13:57 -05:00
mtk_iommu.h
iommu/mediatek: Fix protect memory setting
2018-03-21 06:13:57 -05:00
mtk_iommu_v1.c
IOMMU Updates for Linux v4.17
2018-04-11 18:50:41 -07:00
of_iommu.c
iommu: Clean up of_iommu_init_fn
2018-01-17 15:25:50 +01:00
omap-iommu-debug.c
iommu/omap: Fix debugfs_create_*() usage
2018-01-17 14:23:33 +01:00
omap-iommu.c
iommu/omap: Increase group ref in .device_group()
2018-03-15 15:54:52 +01:00
omap-iommu.h
iommu/omap: Add support to program multiple iommus
2017-09-19 11:32:05 +02:00
omap-iopgtable.h
qcom_iommu.c
iommu/qcom: Simplify getting .drvdata
2018-05-03 15:18:26 +02:00
rockchip-iommu.c
iommu: rockchip: fix building without CONFIG_OF
2018-05-03 16:36:07 +02:00
s390-iommu.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tegra-gart.c
iommu/tegra: gart: Fix gart_iommu_unmap()
2018-05-03 16:30:28 +02:00
tegra-smmu.c
iommu/tegra-smmu: Fix return value check in tegra_smmu_group_get()
2017-12-20 18:32:08 +01:00