From: Dmitry Osipenko Date: Wed, 12 Dec 2018 20:39:01 +0000 (+0300) Subject: iommu/tegra: gart: Fix NULL pointer dereference X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8e924910dd07f1614fe534f8bdfdc17f7de3d68b;p=linux.git iommu/tegra: gart: Fix NULL pointer dereference Fix NULL pointer dereference on IOMMU domain destruction that happens because clients list is being iterated unsafely and its elements are getting deleted during the iteration. Signed-off-by: Dmitry Osipenko Acked-by: Thierry Reding Signed-off-by: Joerg Roedel --- diff --git a/drivers/iommu/tegra-gart.c b/drivers/iommu/tegra-gart.c index a7a9400e0cd88..7fdd8b12efd5d 100644 --- a/drivers/iommu/tegra-gart.c +++ b/drivers/iommu/tegra-gart.c @@ -260,9 +260,9 @@ static void gart_iommu_domain_free(struct iommu_domain *domain) if (gart) { spin_lock(&gart->client_lock); if (!list_empty(&gart->client)) { - struct gart_client *c; + struct gart_client *c, *tmp; - list_for_each_entry(c, &gart->client, list) + list_for_each_entry_safe(c, tmp, &gart->client, list) __gart_iommu_detach_dev(domain, c->dev); } spin_unlock(&gart->client_lock);