summaryrefslogtreecommitdiffstats
path: root/drivers/iommu
diff options
context:
space:
mode:
authorLu Baolu2019-08-01 05:14:58 +0200
committerJoerg Roedel2019-08-06 17:27:10 +0200
commit458b7c8e0dde12d140e3472b80919cbb9ae793f4 (patch)
tree8b8589c883fa46ffa98fb006e6459d81b496d806 /drivers/iommu
parentiommu/arm-smmu: Mark expected switch fall-through (diff)
downloadkernel-qcow2-linux-458b7c8e0dde12d140e3472b80919cbb9ae793f4.tar.gz
kernel-qcow2-linux-458b7c8e0dde12d140e3472b80919cbb9ae793f4.tar.xz
kernel-qcow2-linux-458b7c8e0dde12d140e3472b80919cbb9ae793f4.zip
iommu/vt-d: Detach domain when move device out of group
When removing a device from an iommu group, the domain should be detached from the device. Otherwise, the stale domain info will still be cached by the driver and the driver will refuse to attach any domain to the device again. Cc: Ashok Raj <ashok.raj@intel.com> Cc: Jacob Pan <jacob.jun.pan@linux.intel.com> Cc: Kevin Tian <kevin.tian@intel.com> Fixes: b7297783c2bb6 ("iommu/vt-d: Remove duplicated code for device hotplug") Reported-and-tested-by: Vlad Buslov <vladbu@mellanox.com> Suggested-by: Robin Murphy <robin.murphy@arm.com> Link: https://lkml.org/lkml/2019/7/26/1133 Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu')
-rw-r--r--drivers/iommu/intel-iommu.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index bdaed2da8a55..3e22fa6ae8c8 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -5316,6 +5316,8 @@ static void intel_iommu_remove_device(struct device *dev)
if (!iommu)
return;
+ dmar_remove_one_dev_info(dev);
+
iommu_group_remove_device(dev);
iommu_device_unlink(&iommu->iommu, dev);