Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1430295

[PATCH v5 3/8] iommu/rockchip: Fix allocation of bases array in driver probe

Path csiph.com!eternal-september.org!feeder.eternal-september.org!news.mixmin.net!news.unit0.net!news.panservice.it!bofh.it!news.nic.it!robomod
From Shunqian Zheng <zhengsq@rock-chips.com>
Newsgroups linux.kernel
Subject [PATCH v5 3/8] iommu/rockchip: Fix allocation of bases array in driver probe
Date Fri, 24 Jun 2016 04:20:02 +0200
Message-ID <rNoSS-230-17@gated-at.bofh.it> (permalink)
References <rNoSR-230-3@gated-at.bofh.it>
X-Original-To joro@8bytes.org, heiko@sntech.de, robh+dt@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, mark.yao@rock-chips.com, airlied@linux.ie, tfiga@google.com, xxm@rock-chips.com
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EO6R125qGQRB5ThupRoA5RotuG5mFlo30Tx8XHRKkZ8=; b=DwcUFfTZQUCHdumGqJNIot2d4qTozc9qXJQ+QCQwvbVjL/Vt5nFwQkihYauv+QBjXQ 1xCZwrkvkg5V3eERaeMtUPPaoomee09iavBrFyRq456K+ngJjaQkURfJ3LdAiTYFUhtR U8QhwyYkKal3WIAypzjd1j9rB1VtDQ2HCPhwWix6bjnmFh+oeyDa+Sp5nGbAf+9WfZuh IcRRJ0pmMf2JUo4O0NmQf0K/I6GvCjlonT262pfjG2OAJcS2tzmo0C+qRNSQKP+25j5N DR3yR9Zl2R/tpQZLFM91E48YkB64nlfJC5qOqNiwI93Dg7NLmiKiwTOFR3OlrgpHGxu1 m73Q==
X-Gm-Message-State ALyK8tIvs2AtSWfkMNkqdrl7/3GbJlgjGHRuAoJDVUzolYx3oXrnit9F70GSNr1okdglig==
X-Received by 10.66.165.40 with SMTP id yv8mr3087550pab.89.1466734503692; Thu, 23 Jun 2016 19:15:03 -0700 (PDT)
X-Mailer git-send-email 1.9.1
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 44
Organization linux.* mail to news gateway
X-Original-Cc linux-arm-kernel@lists.infradead.org, iommu@lists.linux-foundation.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Shunqian Zheng <zhengsq@rock-chips.com>, Tomasz Figa <tfiga@chromium.org>
X-Original-Date Fri, 24 Jun 2016 10:13:28 +0800
X-Original-Message-ID <1466734413-7453-4-git-send-email-zhengsq@rock-chips.com>
X-Original-References <1466734413-7453-1-git-send-email-zhengsq@rock-chips.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1430295

Show key headers only | View raw


In .probe(), devm_kzalloc() is called with size == 0 and works only
by luck, due to internal behavior of the allocator and the fact
that the proper allocation size is small. Let's use proper value for
calculating the size.

Fixes: cd6438c5f844 ("iommu/rockchip: Reconstruct to support multi slaves")

Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
---
 drivers/iommu/rockchip-iommu.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
index 53fa0d9..8a5bac7 100644
--- a/drivers/iommu/rockchip-iommu.c
+++ b/drivers/iommu/rockchip-iommu.c
@@ -1034,6 +1034,7 @@ static int rk_iommu_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct rk_iommu *iommu;
 	struct resource *res;
+	int num_res = pdev->num_resources;
 	int i;
 
 	iommu = devm_kzalloc(dev, sizeof(*iommu), GFP_KERNEL);
@@ -1043,12 +1044,13 @@ static int rk_iommu_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, iommu);
 	iommu->dev = dev;
 	iommu->num_mmu = 0;
-	iommu->bases = devm_kzalloc(dev, sizeof(*iommu->bases) * iommu->num_mmu,
+
+	iommu->bases = devm_kzalloc(dev, sizeof(*iommu->bases) * num_res,
 				    GFP_KERNEL);
 	if (!iommu->bases)
 		return -ENOMEM;
 
-	for (i = 0; i < pdev->num_resources; i++) {
+	for (i = 0; i < num_res; i++) {
 		res = platform_get_resource(pdev, IORESOURCE_MEM, i);
 		if (!res)
 			continue;
-- 
1.9.1

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

iommu/rockchip: Fix bugs and enable on ARM64 Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
  [PATCH v5 7/8] drm/rockchip: Use common IOMMU API to attach devices Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
    Re: [PATCH v5 7/8] drm/rockchip: Use common IOMMU API to attach  devices Mark yao <mark.yao@rock-chips.com> - 2016-07-08 03:00 +0200
  [PATCH v5 1/8] iommu/rockchip: Fix devm_{request,free}_irq parameter Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
  [PATCH v5 2/8] iommu/rockchip: Add map_sg callback for rk_iommu_ops Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
  [PATCH v5 3/8] iommu/rockchip: Fix allocation of bases array in driver probe Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
  [PATCH v5 6/8] drm/rockchip: Do not use DMA mapping API if attached to IOMMU domain Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
    Re: [PATCH v5 6/8] drm/rockchip: Do not use DMA mapping API if  attached to IOMMU domain Mark yao <mark.yao@rock-chips.com> - 2016-07-08 03:00 +0200
  [PATCH v5 5/8] iommu/rockchip: Prepare to support generic DMA mapping Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
  [PATCH v5 8/8] iommu/rockchip: Enable Rockchip IOMMU on ARM64 Shunqian Zheng <zhengsq@rock-chips.com> - 2016-06-24 04:20 +0200
  Re: iommu/rockchip: Fix bugs and enable on ARM64 Joerg Roedel <joro@8bytes.org> - 2016-06-27 15:00 +0200
    Re: iommu/rockchip: Fix bugs and enable on ARM64 Mark yao <mark.yao@rock-chips.com> - 2016-07-08 03:10 +0200

csiph-web