linux/drivers/iommu
David Woodhouse 9101704429 iommu/vt-d: Fix PASID table allocation
Somehow I ended up with an off-by-three error in calculating the size of
the PASID and PASID State tables, which triggers allocations failures as
those tables unfortunately have to be physically contiguous.

In fact, even the *correct* maximum size of 8MiB is problematic and is
wont to lead to allocation failures. Since I have extracted a promise
that this *will* be fixed in hardware, I'm happy to limit it on the
current hardware to a maximum of 0x20000 PASIDs, which gives us 1MiB
tables — still not ideal, but better than before.

Reported by Mika Kuoppala <mika.kuoppala@linux.intel.com> and also by
Xunlei Pang <xlpang@redhat.com> who submitted a simpler patch to fix
only the allocation (and not the free) to the "correct" limit... which
was still problematic.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Cc: stable@vger.kernel.org
2016-11-19 09:42:35 -08:00
..
amd_iommu_init.c iommu/amd: Use standard bitmap operation to set bitmap 2016-09-19 15:49:01 +02:00
amd_iommu_proto.h Merge branch 'x86/amd-avic' into x86/amd 2016-09-05 12:43:16 +02:00
amd_iommu_types.h KVM updates for v4.9-rc1 2016-10-06 10:49:01 -07:00
amd_iommu_v2.c IOMMU Updates for Linux v4.8 2016-08-01 07:25:10 -04:00
amd_iommu.c IOMMU Updates for Linux v4.9 2016-10-11 12:52:41 -07:00
arm-smmu-v3.c iommu/arm-smmu: Set domain geometry 2016-09-16 09:34:22 +01:00
arm-smmu.c iommu/arm-smmu: Set domain geometry 2016-09-16 09:34:22 +01:00
dma-iommu.c iommu/dma: Avoid PCI host bridge windows 2016-09-16 09:34:22 +01:00
dmar.c iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions 2016-10-30 05:32:51 -06:00
exynos-iommu.c iommu/exynos: Fix error handling for of_platform_device_create 2016-08-09 17:27:48 +02:00
fsl_pamu_domain.c iommu/fsl: Convert to device_group call-back 2015-10-22 00:00:49 +02:00
fsl_pamu_domain.h iommu/fsl: Make use of domain_alloc and domain_free 2015-03-31 15:32:14 +02:00
fsl_pamu.c powerpc/fsl: Move fsl_guts.h out of arch/powerpc 2015-10-21 18:05:50 -05:00
fsl_pamu.h iommu/fsl: Various cleanups 2015-02-03 18:47:18 +01:00
intel_irq_remapping.c SVM fixes for Linux 4.5 2016-02-16 08:04:06 -08:00
intel-iommu.c iommu/vt-d: Fix IOMMU lookup for SR-IOV Virtual Functions 2016-10-30 05:32:51 -06:00
intel-svm.c iommu/vt-d: Fix PASID table allocation 2016-11-19 09:42:35 -08:00
io-pgtable-arm-v7s.c iommu/io-pgtable-arm: Check for v7s-incapable systems 2016-09-16 09:34:23 +01:00
io-pgtable-arm.c iommu/io-pgtable-arm: Fix iova_to_phys for block entries 2016-07-01 14:04:37 +01:00
io-pgtable.c iommu/io-pgtable: Fix a brace coding style issue. 2016-04-05 15:34:29 +02:00
io-pgtable.h iommu/io-pgtable: Add MTK 4GB mode in Short-descriptor 2016-04-05 15:39:37 +02:00
iommu-sysfs.c iommu: Fix compile error in iommu-sysfs.c 2014-07-07 12:01:21 +02:00
iommu-traces.c
iommu.c iommu: Introduce iommu_fwspec 2016-09-16 09:34:15 +01:00
iova.c iommu/iova: Disable preemption around use of this_cpu_ptr() 2016-06-27 13:07:45 +02:00
ipmmu-vmsa.c iommu/ipmmu-vmsa: Fix wrong error handle of ipmmu_add_device 2016-09-05 12:53:58 +02:00
irq_remapping.c x86/cpufeature: Replace cpu_has_apic with boot_cpu_has() usage 2016-04-13 11:37:41 +02:00
irq_remapping.h iommu, x86: Setup Posted-Interrupts capability for Intel iommu 2015-06-12 11:33:52 +02:00
Kconfig iommu/arm-smmu: Support non-PCI devices with SMMUv3 2016-09-16 09:34:17 +01:00
Makefile Merge branches 'x86/amd', 'x86/vt-d', 'arm/exynos', 'arm/mediatek', 'arm/msm', 'arm/rockchip', 'arm/smmu' and 'core' into next 2016-07-26 16:02:37 +02:00
msm_iommu_hw-8xxx.h
msm_iommu.c iommu/msm: use generic ARMV7S short descriptor pagetable ops 2016-06-21 13:57:13 +02:00
msm_iommu.h iommu/msm: Add DT adaptation 2016-06-21 13:56:00 +02:00
mtk_iommu_v1.c iommu/mediatek: Make mtk_iommu_pm_ops static 2016-06-21 11:54:06 +02:00
mtk_iommu.c iommu/mediatek: move the common struct into header file 2016-06-21 11:36:19 +02:00
mtk_iommu.h iommu/mediatek: Mark static functions in headers inline 2016-08-09 15:46:46 +02:00
of_iommu.c iommu: Introduce iommu_fwspec 2016-09-16 09:34:15 +01:00
omap-iommu-debug.c iommu/omap: Align code with open parenthesis 2016-04-05 17:53:20 +02:00
omap-iommu.c iommu/omap: Use WARN_ON for page table alignment check 2016-04-05 17:53:20 +02:00
omap-iommu.h iommu/omap: Add support for configuring dsp iommus on DRA7xx 2015-10-14 14:35:47 +02:00
omap-iopgtable.h iommu/omap: Use BIT(x) macros in omap-iopgtable.h 2015-08-03 16:04:42 +02:00
rockchip-iommu.c iommu/rockchip: Prepare to support generic DMA mapping 2016-06-27 14:50:08 +02:00
s390-iommu.c iommu/s390: simplify registration of I/O address translation parameters 2016-09-22 13:42:28 +02:00
tegra-gart.c Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'arm/smmu', 'arm/tegra' and 'core' into next 2015-04-02 13:33:19 +02:00
tegra-smmu.c iommu/tegra-smmu: Parameterize number of TLB lines 2015-08-13 17:05:28 +02:00