Commit 1c1cc454 authored by Joerg Roedel's avatar Joerg Roedel

iommu/amd: Allow non-ATS devices in IOMMUv2 domains

With the grouping of multi-function devices a non-ATS
capable device might also end up in the same domain as an
IOMMUv2 capable device.
So handle this situation gracefully and don't consider it a
bug anymore.
Tested-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 52717828
...@@ -3318,7 +3318,12 @@ static int __flush_pasid(struct protection_domain *domain, int pasid, ...@@ -3318,7 +3318,12 @@ static int __flush_pasid(struct protection_domain *domain, int pasid,
struct amd_iommu *iommu; struct amd_iommu *iommu;
int qdep; int qdep;
BUG_ON(!dev_data->ats.enabled); /*
There might be non-IOMMUv2 capable devices in an IOMMUv2
* domain.
*/
if (!dev_data->ats.enabled)
continue;
qdep = dev_data->ats.qdep; qdep = dev_data->ats.qdep;
iommu = amd_iommu_rlookup_table[dev_data->devid]; iommu = amd_iommu_rlookup_table[dev_data->devid];
......
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