Commit 1228236d authored by Joerg Roedel's avatar Joerg Roedel

iommu: Move default domain allocation to iommu_group_get_for_dev()

Now that the iommu core support for iommu groups is not
pci-centric anymore, we can move default domain allocation
to the bus independent iommu_group_get_for_dev() function.
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 391811e1
...@@ -810,14 +810,6 @@ struct iommu_group *pci_device_group(struct device *dev) ...@@ -810,14 +810,6 @@ struct iommu_group *pci_device_group(struct device *dev)
if (IS_ERR(group)) if (IS_ERR(group))
return NULL; return NULL;
/*
* Try to allocate a default domain - needs support from the
* IOMMU driver.
*/
group->default_domain = __iommu_domain_alloc(pdev->dev.bus,
IOMMU_DOMAIN_DMA);
group->domain = group->default_domain;
return group; return group;
} }
...@@ -849,6 +841,16 @@ struct iommu_group *iommu_group_get_for_dev(struct device *dev) ...@@ -849,6 +841,16 @@ struct iommu_group *iommu_group_get_for_dev(struct device *dev)
if (IS_ERR(group)) if (IS_ERR(group))
return group; return group;
/*
* Try to allocate a default domain - needs support from the
* IOMMU driver.
*/
if (!group->default_domain) {
group->default_domain = __iommu_domain_alloc(dev->bus,
IOMMU_DOMAIN_DMA);
group->domain = group->default_domain;
}
ret = iommu_group_add_device(group, dev); ret = iommu_group_add_device(group, dev);
if (ret) { if (ret) {
iommu_group_put(group); iommu_group_put(group);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment