From: Joerg Roedel <jroe...@suse.de>

Remove the use of dev->archdata.iommu and use the private per-device
pointer provided by IOMMU core code instead.

Signed-off-by: Joerg Roedel <jroe...@suse.de>
---
 drivers/iommu/omap-iommu.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index c8282cc212cb..e84ead6fb234 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -71,7 +71,7 @@ static struct omap_iommu_domain *to_omap_domain(struct 
iommu_domain *dom)
  **/
 void omap_iommu_save_ctx(struct device *dev)
 {
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
        struct omap_iommu *obj;
        u32 *p;
        int i;
@@ -101,7 +101,7 @@ EXPORT_SYMBOL_GPL(omap_iommu_save_ctx);
  **/
 void omap_iommu_restore_ctx(struct device *dev)
 {
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
        struct omap_iommu *obj;
        u32 *p;
        int i;
@@ -1398,7 +1398,7 @@ static size_t omap_iommu_unmap(struct iommu_domain 
*domain, unsigned long da,
 
 static int omap_iommu_count(struct device *dev)
 {
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
        int count = 0;
 
        while (arch_data->iommu_dev) {
@@ -1459,8 +1459,8 @@ static void omap_iommu_detach_fini(struct 
omap_iommu_domain *odomain)
 static int
 omap_iommu_attach_dev(struct iommu_domain *domain, struct device *dev)
 {
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
        struct omap_iommu_domain *omap_domain = to_omap_domain(domain);
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
        struct omap_iommu_device *iommu;
        struct omap_iommu *oiommu;
        int ret = 0;
@@ -1524,7 +1524,7 @@ omap_iommu_attach_dev(struct iommu_domain *domain, struct 
device *dev)
 static void _omap_iommu_detach_dev(struct omap_iommu_domain *omap_domain,
                                   struct device *dev)
 {
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
        struct omap_iommu_device *iommu = omap_domain->iommus;
        struct omap_iommu *oiommu;
        int i;
@@ -1650,7 +1650,7 @@ static struct iommu_device 
*omap_iommu_probe_device(struct device *dev)
        int num_iommus, i;
 
        /*
-        * Allocate the archdata iommu structure for DT-based devices.
+        * Allocate the per-device iommu structure for DT-based devices.
         *
         * TODO: Simplify this when removing non-DT support completely from the
         * IOMMU users.
@@ -1698,7 +1698,7 @@ static struct iommu_device 
*omap_iommu_probe_device(struct device *dev)
                of_node_put(np);
        }
 
-       dev->archdata.iommu = arch_data;
+       dev_iommu_priv_set(dev, arch_data);
 
        /*
         * use the first IOMMU alone for the sysfs device linking.
@@ -1712,19 +1712,19 @@ static struct iommu_device 
*omap_iommu_probe_device(struct device *dev)
 
 static void omap_iommu_release_device(struct device *dev)
 {
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
 
        if (!dev->of_node || !arch_data)
                return;
 
-       dev->archdata.iommu = NULL;
+       dev_iommu_priv_set(dev, NULL);
        kfree(arch_data);
 
 }
 
 static struct iommu_group *omap_iommu_device_group(struct device *dev)
 {
-       struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+       struct omap_iommu_arch_data *arch_data = dev_iommu_priv_get(dev);
        struct iommu_group *group = ERR_PTR(-EINVAL);
 
        if (!arch_data)
-- 
2.27.0

Reply via email to