mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
Revert "iommu: Fix false ownership failure on AMD systems with PASID activated"
This reverts commit 2380f1e819.
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>
This commit is contained in:
parent
45d08d85e6
commit
189116d5ad
|
|
@ -3113,24 +3113,6 @@ static ssize_t iommu_group_store_type(struct iommu_group *group,
|
|||
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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user