summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerry Snitselaar <jsnitsel@redhat.com>2019-12-10 11:56:06 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-31 16:45:53 +0100
commit71730ba7914ea2bb8ba311e1423a5c8475178912 (patch)
tree71d689b20a03579552d95e2a5baae056a98a7512
parentfe3bcc2e236c21854a499ca6f06e88ecc1e4e1ea (diff)
downloadlinux-stable-71730ba7914ea2bb8ba311e1423a5c8475178912.tar.gz
linux-stable-71730ba7914ea2bb8ba311e1423a5c8475178912.tar.bz2
linux-stable-71730ba7914ea2bb8ba311e1423a5c8475178912.zip
iommu: set group default domain before creating direct mappings
commit d360211524bece6db9920f32c91808235290b51c upstream. iommu_group_create_direct_mappings uses group->default_domain, but right after it is called, request_default_domain_for_dev calls iommu_domain_free for the default domain, and sets the group default domain to a different domain. Move the iommu_group_create_direct_mappings call to after the group default domain is set, so the direct mappings get associated with that domain. Cc: Joerg Roedel <jroedel@suse.de> Cc: Lu Baolu <baolu.lu@linux.intel.com> Cc: iommu@lists.linux-foundation.org Cc: stable@vger.kernel.org Fixes: 7423e01741dd ("iommu: Add API to request DMA domain for device") Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com> Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/iommu/iommu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index dea1069334a4..24248aa8a7e5 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -2221,13 +2221,13 @@ request_default_domain_for_dev(struct device *dev, unsigned long type)
goto out;
}
- iommu_group_create_direct_mappings(group, dev);
-
/* Make the domain the default for this group */
if (group->default_domain)
iommu_domain_free(group->default_domain);
group->default_domain = domain;
+ iommu_group_create_direct_mappings(group, dev);
+
dev_info(dev, "Using iommu %s mapping\n",
type == IOMMU_DOMAIN_DMA ? "dma" : "direct");