lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu,  1 Sep 2016 15:43:17 -0700
From:   Nicolin Chen <nicoleotsuka@...il.com>
To:     vinod.koul@...el.com, jonathanh@...dia.com
Cc:     linux-kernel@...r.kernel.org, linux-tegra@...r.kernel.org,
        dmaengine@...r.kernel.org, gnurou@...il.com,
        thierry.reding@...il.com, swarren@...dotorg.org,
        ldewangan@...dia.com
Subject: [PATCH] dmaengine: tegra210-adma: Add some necessary dev_err() before error out

There could be something going wrong during the probe() part,
so it would not be ideal for debugging by silently returning.

This patches adds some necessary dev_err() to give the hints.

Signed-off-by: Nicolin Chen <nicoleotsuka@...il.com>
---
 drivers/dma/tegra210-adma.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c
index b10cbaa..09b46f7 100644
--- a/drivers/dma/tegra210-adma.c
+++ b/drivers/dma/tegra210-adma.c
@@ -218,8 +218,10 @@ static int tegra_adma_init(struct tegra_adma *tdma)
 	ret = readx_poll_timeout(readl,
 				 tdma->base_addr + ADMA_GLOBAL_SOFT_RESET,
 				 status, status == 0, 20, 10000);
-	if (ret)
+	if (ret) {
+		dev_err(tdma->dev, "Timeout waiting for soft reset\n");
 		return ret;
+	}
 
 	/* Enable global ADMA registers */
 	tdma_write(tdma, ADMA_GLOBAL_CMD, 1);
@@ -581,6 +583,7 @@ static int tegra_adma_alloc_chan_resources(struct dma_chan *dc)
 
 	ret = pm_runtime_get_sync(tdc2dev(tdc));
 	if (ret < 0) {
+		dev_err(tdc2dev(tdc), "failed to get pm runtime: %d\n", ret);
 		free_irq(tdc->irq, tdc);
 		return ret;
 	}
@@ -647,8 +650,10 @@ static int tegra_adma_runtime_resume(struct device *dev)
 	int ret;
 
 	ret = pm_clk_resume(dev);
-	if (ret)
+	if (ret) {
+		dev_err(dev, "failed to resume pm clock: %d\n", ret);
 		return ret;
+	}
 
 	tdma_write(tdma, ADMA_GLOBAL_CMD, tdma->global_cmd);
 
@@ -718,6 +723,9 @@ static int tegra_adma_probe(struct platform_device *pdev)
 
 		tdc->irq = of_irq_get(pdev->dev.of_node, i);
 		if (tdc->irq < 0) {
+			dev_err(&pdev->dev,
+				"failed to get irq for channel %d: %d\n",
+				i + 1, tdc->irq);
 			ret = tdc->irq;
 			goto irq_dispose;
 		}
-- 
2.1.4

Powered by blists - more mailing lists