]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
iommu/exynos: Remove useless members from exynos_iommu_owner structure
authorMarek Szyprowski <m.szyprowski@samsung.com>
Tue, 19 May 2015 13:20:26 +0000 (15:20 +0200)
committerJoerg Roedel <jroedel@suse.de>
Fri, 29 May 2015 08:49:12 +0000 (10:49 +0200)
This patch removes useless spinlocks and other unused members from
struct exynos_iommu_owner. There is no point is protecting this
structure by spinlock because content of this structure doesn't change
and other structures have their own spinlocks.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/exynos-iommu.c

index 278eb19d6463386b63dc9a329acae6c270d56b0a..311d4edd265837c1abd68df8dbb7ec9f43e8cb34 100644 (file)
@@ -189,9 +189,6 @@ struct exynos_iommu_owner {
        struct list_head client; /* entry of exynos_iommu_domain.clients */
        struct device *dev;
        struct device *sysmmu;
-       struct iommu_domain *domain;
-       void *vmm_data;         /* IO virtual memory manager's data */
-       spinlock_t lock;        /* Lock to preserve consistency of System MMU */
 };
 
 struct exynos_iommu_domain {
@@ -477,44 +474,34 @@ static int __exynos_sysmmu_enable(struct device *dev, phys_addr_t pgtable,
                                  struct iommu_domain *domain)
 {
        int ret = 0;
-       unsigned long flags;
        struct exynos_iommu_owner *owner = dev->archdata.iommu;
        struct sysmmu_drvdata *data;
 
        BUG_ON(!has_sysmmu(dev));
 
-       spin_lock_irqsave(&owner->lock, flags);
-
        data = dev_get_drvdata(owner->sysmmu);
 
        ret = __sysmmu_enable(data, pgtable, domain);
        if (ret >= 0)
                data->master = dev;
 
-       spin_unlock_irqrestore(&owner->lock, flags);
-
        return ret;
 }
 
 static bool exynos_sysmmu_disable(struct device *dev)
 {
-       unsigned long flags;
        bool disabled = true;
        struct exynos_iommu_owner *owner = dev->archdata.iommu;
        struct sysmmu_drvdata *data;
 
        BUG_ON(!has_sysmmu(dev));
 
-       spin_lock_irqsave(&owner->lock, flags);
-
        data = dev_get_drvdata(owner->sysmmu);
 
        disabled = __sysmmu_disable(data);
        if (disabled)
                data->master = NULL;
 
-       spin_unlock_irqrestore(&owner->lock, flags);
-
        return disabled;
 }
 
@@ -762,10 +749,8 @@ static int exynos_iommu_attach_device(struct iommu_domain *domain,
        spin_lock_irqsave(&priv->lock, flags);
 
        ret = __exynos_sysmmu_enable(dev, pagetable, domain);
-       if (ret == 0) {
+       if (ret == 0)
                list_add_tail(&owner->client, &priv->clients);
-               owner->domain = domain;
-       }
 
        spin_unlock_irqrestore(&priv->lock, flags);
 
@@ -793,10 +778,8 @@ static void exynos_iommu_detach_device(struct iommu_domain *domain,
 
        list_for_each_entry(owner, &priv->clients, client) {
                if (owner == dev->archdata.iommu) {
-                       if (exynos_sysmmu_disable(dev)) {
+                       if (exynos_sysmmu_disable(dev))
                                list_del_init(&owner->client);
-                               owner->domain = NULL;
-                       }
                        break;
                }
        }