On 6/22/21 7:52 AM, Douglas Anderson wrote:
@@ -1519,7 +1542,8 @@ static int iommu_get_def_domain_type(struct device *dev)
static int iommu_group_alloc_default_domain(struct bus_type *bus,
struct iommu_group *group,
- unsigned int type)
+ unsigned int type,
+ struct device *dev)
{
struct iommu_domain *dom;
@@ -1534,6 +1558,12 @@ static int iommu_group_alloc_default_domain(struct bus_type *bus,
if (!dom)
return -ENOMEM;
+ /* Save the strictness requests from the device */
+ if (dev && type == IOMMU_DOMAIN_DMA) {
+ dom->request_non_strict = dev->request_non_strict_iommu;
+ dom->force_strict = dev->force_strict_iommu;
+ }
+
An iommu default domain might be used by multiple devices which might
have different "strict" attributions. Then who could override who?
Best regards,
baolu