]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
iommu/vt-d: Fix passthrough mode with translation-disabled devices
authorDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 11 May 2015 13:59:20 +0000 (14:59 +0100)
committerLuis Henriques <luis.henriques@canonical.com>
Tue, 30 Jun 2015 16:15:19 +0000 (17:15 +0100)
commit359effb003b018fb6f202906c35ffe808aa3c46c
treef4e70836b967b03767d900f488035642dc7affb8
parentf4d657ec8e46dc592596a42408524cd4d7634a26
iommu/vt-d: Fix passthrough mode with translation-disabled devices

commit 4ed6a540fab8ea4388c1703b73ecfed68a2009d1 upstream.

When we use 'intel_iommu=igfx_off' to disable translation for the
graphics, and when we discover that the BIOS has misconfigured the DMAR
setup for I/OAT, we use a special DUMMY_DEVICE_DOMAIN_INFO value in
dev->archdata.iommu to indicate that translation is disabled.

With passthrough mode, we were attempting to dereference that as a
normal pointer to a struct device_domain_info when setting up an
identity mapping for the affected device.

This fixes the problem by making device_to_iommu() explicitly check for
the special value and indicate that no IOMMU was found to handle the
devices in question.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
drivers/iommu/intel-iommu.c