diff options
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.patch | 57 |
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 + |