linux/drivers/iommu
David Woodhouse d14053b3c7 iommu/vt-d: Fix ATSR handling for Root-Complex integrated endpoints
The VT-d specification says that "Software must enable ATS on endpoint
devices behind a Root Port only if the Root Port is reported as
supporting ATS transactions."

We walk up the tree to find a Root Port, but for integrated devices we
don't find one — we get to the host bridge. In that case we *should*
allow ATS. Currently we don't, which means that we are incorrectly
failing to use ATS for the integrated graphics. Fix that.

We should never break out of this loop "naturally" with bus==NULL,
since we'll always find bridge==NULL in that case (and now return 1).

So remove the check for (!bridge) after the loop, since it can never
happen. If it did, it would be worthy of a BUG_ON(!bridge). But since
it'll oops anyway in that case, that'll do just as well.

Cc: stable@vger.kernel.org
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2015-10-15 09:28:56 +01:00
..
amd_iommu_init.c iommu/amd: Make a symbol static 2015-08-13 19:49:10 +02:00
amd_iommu_proto.h IOMMU Updates for Linux v4.2 2015-06-23 18:27:19 -07:00
amd_iommu_types.h IOMMU Updates for Linux v4.2 2015-06-23 18:27:19 -07:00
amd_iommu_v2.c iommu/amd: Use BUG_ON instead of if () BUG() 2015-08-13 19:49:14 +02:00
amd_iommu.c iommu/amd: Use BUG_ON instead of if () BUG() 2015-08-13 19:49:14 +02:00
arm-smmu-v3.c iommu/arm-smmu: Remove arm_smmu_flush_pgtable() 2015-08-06 14:35:40 +01:00
arm-smmu.c iommu/arm-smmu: Remove arm_smmu_flush_pgtable() 2015-08-06 14:35:40 +01:00
dmar.c iommu/vt-d: Avoid format string leaks into iommu_device_create 2015-08-03 16:15:47 +02:00
exynos-iommu.c iommu/exynos: Add callback for initializing devices from device tree 2015-05-29 10:50:08 +02:00
fsl_pamu_domain.c iommu/fsl: Make use of domain_alloc and domain_free 2015-03-31 15:32:14 +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 iommu/fsl: Really fix init section(s) content 2015-08-18 11:30:46 +02:00
fsl_pamu.h iommu/fsl: Various cleanups 2015-02-03 18:47:18 +01:00
intel_irq_remapping.c iommu/vt-d: Access iomem correctly 2015-08-13 19:49:56 +02:00
intel-iommu.c iommu/vt-d: Fix ATSR handling for Root-Complex integrated endpoints 2015-10-15 09:28:56 +01:00
io-pgtable-arm.c iommu/io-pgtable-arm: Unmap and free table when overwriting with block 2015-08-18 11:27:36 +02:00
io-pgtable.c iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h 2015-08-13 19:51:04 +02:00
io-pgtable.h iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h 2015-08-13 19:51:04 +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: Add iommu_error class event to iommu trace 2013-09-25 11:07:04 +02:00
iommu.c scatterlist: use sg_phys() 2015-08-17 08:13:26 -06:00
iova.c iommu: Make the iova library a module 2015-07-28 15:48:01 +01:00
ipmmu-vmsa.c iommu/ipmmu-vmsa: Clean up DMA API usage 2015-08-06 14:35:39 +01:00
irq_remapping.c iommu/vt-d: Return false instead of 0 in irq_remapping_cap() 2015-08-13 19:49:41 +02:00
irq_remapping.h iommu, x86: Setup Posted-Interrupts capability for Intel iommu 2015-06-12 11:33:52 +02:00
Kconfig Merge git://git.infradead.org/intel-iommu 2015-10-02 07:59:29 -04:00
Makefile iommu/arm-smmu: Add initial driver support for ARM SMMUv3 devices 2015-05-29 11:12:01 +02:00
msm_iommu_dev.c iommu/msm: Use dev_get_platdata() 2014-11-04 15:03:39 +01:00
msm_iommu_hw-8xxx.h iommu/msm: Move mach includes to iommu directory 2013-08-06 11:18:03 -07:00
msm_iommu.c iommu/msm: Use BUG_ON instead of if () BUG() 2015-08-13 19:50:51 +02:00
msm_iommu.h iommu/msm: Move mach includes to iommu directory 2013-08-06 11:18:03 -07:00
of_iommu.c of: iommu: Silence misleading warning 2015-08-03 16:07:49 +02:00
omap-iommu-debug.c fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void 2015-09-11 15:21:34 -07:00
omap-iommu.c iommu/omap: Align code with open parenthesis 2015-08-03 16:04:43 +02:00
omap-iommu.h iommu/omap: Use BIT(x) macros in omap-iommu.h 2015-08-03 16:04:42 +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 Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'x86/vt-d', 'x86/amd', 'default-domains' and 'core' into next 2015-06-19 17:17:47 +02:00
shmobile-iommu.c iommu/shmobile: Make use of domain_alloc and domain_free 2015-03-31 15:32:13 +02:00
shmobile-ipmmu.c iommu: drop owner assignment from platform_drivers 2014-10-20 16:20:42 +02:00
shmobile-ipmmu.h iommu/shmobile: Turn the flush_lock mutex into a spinlock 2014-01-07 15:35:25 +01: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