From 798311d11929d45432641f20f2b869b112e8c956 Mon Sep 17 00:00:00 2001 From: James Sewart Date: Fri, 1 Mar 2019 16:03:40 +0000 Subject: [PATCH 1/9] iommu: Move iommu_group_create_direct_mappings to after device_attach If an IOMMU driver requires to know which IOMMU a domain is associated to initialise a domain then it will do so in device_attach, before which it is not safe to call iommu_ops. Signed-off-by: James Sewart diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 33a982e33716..88d589d56ded 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -652,8 +652,6 @@ int iommu_group_add_device(struct iommu_group *group, struct device *dev) dev->iommu_group = group; - iommu_group_create_direct_mappings(group, dev); - mutex_lock(&group->mutex); list_add_tail(&device->list, &group->devices); if (group->domain) @@ -662,6 +660,8 @@ int iommu_group_add_device(struct iommu_group *group, struct device *dev) if (ret) goto err_put_group; + iommu_group_create_direct_mappings(group, dev); + /* Notify any listeners about change to group. */ blocking_notifier_call_chain(&group->notifier, IOMMU_GROUP_NOTIFY_ADD_DEVICE, dev); -- 2.17.1