Skip to content

Commit 9b468f7

Browse files
committed
iommu/arm-smmu: Use helper functions to access dev->iommu_fwspec
Use the new helpers dev_iommu_fwspec_get()/set() to access the dev->iommu_fwspec pointer. This makes it easier to move that pointer later into another struct. Cc: Will Deacon <will.deacon@arm.com> Cc: Robin Murphy <robin.murphy@arm.com> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
1 parent 8097e53 commit 9b468f7

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

drivers/iommu/arm-smmu-v3.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,24 +1696,26 @@ static void arm_smmu_install_ste_for_dev(struct iommu_fwspec *fwspec)
16961696

16971697
static void arm_smmu_detach_dev(struct device *dev)
16981698
{
1699-
struct arm_smmu_master_data *master = dev->iommu_fwspec->iommu_priv;
1699+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
1700+
struct arm_smmu_master_data *master = fwspec->iommu_priv;
17001701

17011702
master->ste.assigned = false;
1702-
arm_smmu_install_ste_for_dev(dev->iommu_fwspec);
1703+
arm_smmu_install_ste_for_dev(fwspec);
17031704
}
17041705

17051706
static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
17061707
{
17071708
int ret = 0;
1709+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
17081710
struct arm_smmu_device *smmu;
17091711
struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
17101712
struct arm_smmu_master_data *master;
17111713
struct arm_smmu_strtab_ent *ste;
17121714

1713-
if (!dev->iommu_fwspec)
1715+
if (!fwspec)
17141716
return -ENOENT;
17151717

1716-
master = dev->iommu_fwspec->iommu_priv;
1718+
master = fwspec->iommu_priv;
17171719
smmu = master->smmu;
17181720
ste = &master->ste;
17191721

@@ -1753,7 +1755,7 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
17531755
ste->s2_cfg = &smmu_domain->s2_cfg;
17541756
}
17551757

1756-
arm_smmu_install_ste_for_dev(dev->iommu_fwspec);
1758+
arm_smmu_install_ste_for_dev(fwspec);
17571759
out_unlock:
17581760
mutex_unlock(&smmu_domain->init_mutex);
17591761
return ret;
@@ -1844,7 +1846,7 @@ static int arm_smmu_add_device(struct device *dev)
18441846
int i, ret;
18451847
struct arm_smmu_device *smmu;
18461848
struct arm_smmu_master_data *master;
1847-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1849+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
18481850
struct iommu_group *group;
18491851

18501852
if (!fwspec || fwspec->ops != &arm_smmu_ops)
@@ -1895,7 +1897,7 @@ static int arm_smmu_add_device(struct device *dev)
18951897

18961898
static void arm_smmu_remove_device(struct device *dev)
18971899
{
1898-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1900+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
18991901
struct arm_smmu_master_data *master;
19001902
struct arm_smmu_device *smmu;
19011903

drivers/iommu/arm-smmu.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,7 +1108,7 @@ static bool arm_smmu_free_sme(struct arm_smmu_device *smmu, int idx)
11081108

11091109
static int arm_smmu_master_alloc_smes(struct device *dev)
11101110
{
1111-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1111+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
11121112
struct arm_smmu_master_cfg *cfg = fwspec->iommu_priv;
11131113
struct arm_smmu_device *smmu = cfg->smmu;
11141114
struct arm_smmu_smr *smrs = smmu->smrs;
@@ -1211,7 +1211,7 @@ static int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain,
12111211
static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
12121212
{
12131213
int ret;
1214-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1214+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
12151215
struct arm_smmu_device *smmu;
12161216
struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
12171217

@@ -1385,7 +1385,7 @@ static int arm_smmu_add_device(struct device *dev)
13851385
{
13861386
struct arm_smmu_device *smmu;
13871387
struct arm_smmu_master_cfg *cfg;
1388-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1388+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
13891389
int i, ret;
13901390

13911391
if (using_legacy_binding) {
@@ -1396,7 +1396,7 @@ static int arm_smmu_add_device(struct device *dev)
13961396
* will allocate/initialise a new one. Thus we need to update fwspec for
13971397
* later use.
13981398
*/
1399-
fwspec = dev->iommu_fwspec;
1399+
fwspec = dev_iommu_fwspec_get(dev);
14001400
if (ret)
14011401
goto out_free;
14021402
} else if (fwspec && fwspec->ops == &arm_smmu_ops) {
@@ -1450,7 +1450,7 @@ static int arm_smmu_add_device(struct device *dev)
14501450

14511451
static void arm_smmu_remove_device(struct device *dev)
14521452
{
1453-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1453+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
14541454
struct arm_smmu_master_cfg *cfg;
14551455
struct arm_smmu_device *smmu;
14561456

@@ -1470,7 +1470,7 @@ static void arm_smmu_remove_device(struct device *dev)
14701470

14711471
static struct iommu_group *arm_smmu_device_group(struct device *dev)
14721472
{
1473-
struct iommu_fwspec *fwspec = dev->iommu_fwspec;
1473+
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
14741474
struct arm_smmu_device *smmu = fwspec_smmu(fwspec);
14751475
struct iommu_group *group = NULL;
14761476
int i, idx;

0 commit comments

Comments
 (0)