| From 42ac14584e574e8297140e28571cf0bf952ca857 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 2 May 2019 09:34:26 +0800 |
| Subject: iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU |
| |
| From: Lu Baolu <baolu.lu@linux.intel.com> |
| |
| [ Upstream commit 5daab58043ee2bca861068e2595564828f3bc663 ] |
| |
| The kernel parameter igfx_off is used by users to disable |
| DMA remapping for the Intel integrated graphic device. It |
| was designed for bare metal cases where a dedicated IOMMU |
| is used for graphic. This doesn't apply to virtual IOMMU |
| case where an include-all IOMMU is used. This makes the |
| kernel parameter work with virtual IOMMU as well. |
| |
| Cc: Ashok Raj <ashok.raj@intel.com> |
| Cc: Jacob Pan <jacob.jun.pan@linux.intel.com> |
| Suggested-by: Kevin Tian <kevin.tian@intel.com> |
| Fixes: c0771df8d5297 ("intel-iommu: Export a flag indicating that the IOMMU is used for iGFX.") |
| Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> |
| Tested-by: Zhenyu Wang <zhenyuw@linux.intel.com> |
| Signed-off-by: Joerg Roedel <jroedel@suse.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/iommu/intel-iommu.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c |
| index 25cc6ae87039d..5c6e0a9fd2f36 100644 |
| --- a/drivers/iommu/intel-iommu.c |
| +++ b/drivers/iommu/intel-iommu.c |
| @@ -3345,9 +3345,12 @@ static int __init init_dmars(void) |
| iommu_identity_mapping |= IDENTMAP_ALL; |
| |
| #ifdef CONFIG_INTEL_IOMMU_BROKEN_GFX_WA |
| - iommu_identity_mapping |= IDENTMAP_GFX; |
| + dmar_map_gfx = 0; |
| #endif |
| |
| + if (!dmar_map_gfx) |
| + iommu_identity_mapping |= IDENTMAP_GFX; |
| + |
| check_tylersburg_isoch(); |
| |
| if (iommu_identity_mapping) { |
| -- |
| 2.20.1 |
| |