diff options
| -rw-r--r-- | drivers/iommu/arm-smmu-v3.c | 6 | ||||
| -rw-r--r-- | drivers/iommu/arm-smmu.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index 591bb96047c9..b47a88757c18 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c | |||
| @@ -1837,6 +1837,9 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain, | |||
| 1837 | { | 1837 | { |
| 1838 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); | 1838 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); |
| 1839 | 1839 | ||
| 1840 | if (domain->type != IOMMU_DOMAIN_UNMANAGED) | ||
| 1841 | return -EINVAL; | ||
| 1842 | |||
| 1840 | switch (attr) { | 1843 | switch (attr) { |
| 1841 | case DOMAIN_ATTR_NESTING: | 1844 | case DOMAIN_ATTR_NESTING: |
| 1842 | *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED); | 1845 | *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED); |
| @@ -1852,6 +1855,9 @@ static int arm_smmu_domain_set_attr(struct iommu_domain *domain, | |||
| 1852 | int ret = 0; | 1855 | int ret = 0; |
| 1853 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); | 1856 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); |
| 1854 | 1857 | ||
| 1858 | if (domain->type != IOMMU_DOMAIN_UNMANAGED) | ||
| 1859 | return -EINVAL; | ||
| 1860 | |||
| 1855 | mutex_lock(&smmu_domain->init_mutex); | 1861 | mutex_lock(&smmu_domain->init_mutex); |
| 1856 | 1862 | ||
| 1857 | switch (attr) { | 1863 | switch (attr) { |
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 6560c4a34b96..099215bbff89 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c | |||
| @@ -1603,6 +1603,9 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain, | |||
| 1603 | { | 1603 | { |
| 1604 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); | 1604 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); |
| 1605 | 1605 | ||
| 1606 | if (domain->type != IOMMU_DOMAIN_UNMANAGED) | ||
| 1607 | return -EINVAL; | ||
| 1608 | |||
| 1606 | switch (attr) { | 1609 | switch (attr) { |
| 1607 | case DOMAIN_ATTR_NESTING: | 1610 | case DOMAIN_ATTR_NESTING: |
| 1608 | *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED); | 1611 | *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED); |
| @@ -1618,6 +1621,9 @@ static int arm_smmu_domain_set_attr(struct iommu_domain *domain, | |||
| 1618 | int ret = 0; | 1621 | int ret = 0; |
| 1619 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); | 1622 | struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); |
| 1620 | 1623 | ||
| 1624 | if (domain->type != IOMMU_DOMAIN_UNMANAGED) | ||
| 1625 | return -EINVAL; | ||
| 1626 | |||
| 1621 | mutex_lock(&smmu_domain->init_mutex); | 1627 | mutex_lock(&smmu_domain->init_mutex); |
| 1622 | 1628 | ||
| 1623 | switch (attr) { | 1629 | switch (attr) { |
