summarylogtreecommitdiffstats
path: root/0064-misc-atmel-ssc-Fix-IRQ-check-in-ssc_probe.patch
diff options
context:
space:
mode:
Diffstat (limited to '0064-misc-atmel-ssc-Fix-IRQ-check-in-ssc_probe.patch')
-rw-r--r--0064-misc-atmel-ssc-Fix-IRQ-check-in-ssc_probe.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/0064-misc-atmel-ssc-Fix-IRQ-check-in-ssc_probe.patch b/0064-misc-atmel-ssc-Fix-IRQ-check-in-ssc_probe.patch
new file mode 100644
index 000000000000..78985ba91901
--- /dev/null
+++ b/0064-misc-atmel-ssc-Fix-IRQ-check-in-ssc_probe.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Miaoqian Lin <linmq006@gmail.com>
+Date: Wed, 1 Jun 2022 16:30:26 +0400
+Subject: [PATCH] misc: atmel-ssc: Fix IRQ check in ssc_probe
+
+[ Upstream commit 1c245358ce0b13669f6d1625f7a4e05c41f28980 ]
+
+platform_get_irq() returns negative error number instead 0 on failure.
+And the doc of platform_get_irq() provides a usage example:
+
+ int irq = platform_get_irq(pdev, 0);
+ if (irq < 0)
+ return irq;
+
+Fix the check of return value to catch errors correctly.
+
+Fixes: eb1f2930609b ("Driver for the Atmel on-chip SSC on AT32AP and AT91")
+Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
+Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
+Link: https://lore.kernel.org/r/20220601123026.7119-1-linmq006@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/misc/atmel-ssc.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c
+index d6cd5537126c69bc76b5c019b17d0b01bb4a7eab..69f9b0336410d7e8da32ca0c7f0c2396eff942b2 100644
+--- a/drivers/misc/atmel-ssc.c
++++ b/drivers/misc/atmel-ssc.c
+@@ -232,9 +232,9 @@ static int ssc_probe(struct platform_device *pdev)
+ clk_disable_unprepare(ssc->clk);
+
+ ssc->irq = platform_get_irq(pdev, 0);
+- if (!ssc->irq) {
++ if (ssc->irq < 0) {
+ dev_dbg(&pdev->dev, "could not get irq\n");
+- return -ENXIO;
++ return ssc->irq;
+ }
+
+ mutex_lock(&user_lock);