iommu/tegra: remove invalid reference to list iterator variable
authorJulia Lawall <Julia.Lawall@lip6.fr>
Sun, 8 Jul 2012 11:37:42 +0000 (13:37 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Fri, 3 Aug 2012 14:04:12 +0000 (16:04 +0200)
If list_for_each_entry, etc complete a traversal of the
list, the iterator variable ends up pointing to an address
at an offset from the list head, and not a meaningful
structure.  Thus this value should not be used after the end
of the iterator.  Replace c->dev by dev, which is the value
that c->dev has been compared to.

This problem was found using Coccinelle (http://coccinelle.lip6.fr/).

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Hiroshi DOYU <hdoyu@nvidia.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/tegra-smmu.c

index 4ba325ab626249c2aa2aee1271a6d0c68ec20d9a..a9bf4c30cd84cc72f3a8bf9f9b241f77d54baa1d 100644 (file)
@@ -799,7 +799,7 @@ static void smmu_iommu_detach_dev(struct iommu_domain *domain,
                        goto out;
                }
        }
-       dev_err(smmu->dev, "Couldn't find %s\n", dev_name(c->dev));
+       dev_err(smmu->dev, "Couldn't find %s\n", dev_name(dev));
 out:
        spin_unlock(&as->client_lock);
 }