summarylogtreecommitdiffstats
path: root/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch
diff options
context:
space:
mode:
Diffstat (limited to '0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch')
-rw-r--r--0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch b/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch
new file mode 100644
index 000000000000..3470948aca6d
--- /dev/null
+++ b/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch
@@ -0,0 +1,57 @@
+From 0d462a681d7d98ecb1b48605f6625802acd85d31 Mon Sep 17 00:00:00 2001
+From: Li Qiong <liqiong@nfschina.com>
+Date: Fri, 12 Aug 2022 11:09:54 +0800
+Subject: [PATCH 47/73] net: lan966x: fix checking for return value of
+ platform_get_irq_byname()
+
+[ Upstream commit 40b4ac880e21d917da7f3752332fa57564a4c202 ]
+
+The platform_get_irq_byname() returns non-zero IRQ number
+or negative error number. "if (irq)" always true, chang it
+to "if (irq > 0)"
+
+Signed-off-by: Li Qiong <liqiong@nfschina.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
+index 1d6e3b641b2e..d928b75f3780 100644
+--- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
++++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
+@@ -710,7 +710,7 @@ static void lan966x_cleanup_ports(struct lan966x *lan966x)
+ disable_irq(lan966x->xtr_irq);
+ lan966x->xtr_irq = -ENXIO;
+
+- if (lan966x->ana_irq) {
++ if (lan966x->ana_irq > 0) {
+ disable_irq(lan966x->ana_irq);
+ lan966x->ana_irq = -ENXIO;
+ }
+@@ -718,10 +718,10 @@ static void lan966x_cleanup_ports(struct lan966x *lan966x)
+ if (lan966x->fdma)
+ devm_free_irq(lan966x->dev, lan966x->fdma_irq, lan966x);
+
+- if (lan966x->ptp_irq)
++ if (lan966x->ptp_irq > 0)
+ devm_free_irq(lan966x->dev, lan966x->ptp_irq, lan966x);
+
+- if (lan966x->ptp_ext_irq)
++ if (lan966x->ptp_ext_irq > 0)
+ devm_free_irq(lan966x->dev, lan966x->ptp_ext_irq, lan966x);
+ }
+
+@@ -1049,7 +1049,7 @@ static int lan966x_probe(struct platform_device *pdev)
+ }
+
+ lan966x->ana_irq = platform_get_irq_byname(pdev, "ana");
+- if (lan966x->ana_irq) {
++ if (lan966x->ana_irq > 0) {
+ err = devm_request_threaded_irq(&pdev->dev, lan966x->ana_irq, NULL,
+ lan966x_ana_irq_handler, IRQF_ONESHOT,
+ "ana irq", lan966x);
+--
+2.37.3
+