diff options
author | Vasant Hegde <vasant.hegde@amd.com> | 2023-10-06 12:57:06 +0300 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2023-10-06 17:01:56 +0300 |
commit | 189116d5ad54eee2bab82c5f12e837912fc0b4c4 (patch) | |
tree | 34ab9fd397bc2e61e6918e68a44b1c7fdb7881d4 /drivers/iommu/iommu.c | |
parent | 45d08d85e6f64d3f1002ce2eb5c967e2aa4bcd39 (diff) | |
download | linux-189116d5ad54eee2bab82c5f12e837912fc0b4c4.tar.xz |
Revert "iommu: Fix false ownership failure on AMD systems with PASID activated"
This reverts commit 2380f1e8195ef612deea1dc7a3d611c5d2b9b56a.
Previous patch removed AMD iommu_v2 module. Hence its safe to revert this
workaround.
Suggested-by: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jason Gunthorpe <jgg@nvidia.com>
Cc: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Link: https://lore.kernel.org/r/20231006095706.5694-6-vasant.hegde@amd.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/iommu.c')
-rw-r--r-- | drivers/iommu/iommu.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 3bfc56df4f78..360f1042e555 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -3113,24 +3113,6 @@ out_unlock: return ret ?: count; } -static bool iommu_is_default_domain(struct iommu_group *group) -{ - if (group->domain == group->default_domain) - return true; - - /* - * If the default domain was set to identity and it is still an identity - * domain then we consider this a pass. This happens because of - * amd_iommu_init_device() replacing the default idenytity domain with an - * identity domain that has a different configuration for AMDGPU. - */ - if (group->default_domain && - group->default_domain->type == IOMMU_DOMAIN_IDENTITY && - group->domain && group->domain->type == IOMMU_DOMAIN_IDENTITY) - return true; - return false; -} - /** * iommu_device_use_default_domain() - Device driver wants to handle device * DMA through the kernel DMA API. @@ -3149,7 +3131,7 @@ int iommu_device_use_default_domain(struct device *dev) mutex_lock(&group->mutex); if (group->owner_cnt) { - if (group->owner || !iommu_is_default_domain(group) || + if (group->domain != group->default_domain || group->owner || !xa_empty(&group->pasid_array)) { ret = -EBUSY; goto unlock_out; |