| From 5ef9b803a4af0f5e42012176889b40bb2a978b18 Mon Sep 17 00:00:00 2001 |
| From: Sergey Shtylyov <s.shtylyov@omp.ru> |
| Date: Mon, 2 May 2022 23:14:09 +0300 |
| Subject: smsc911x: allow using IRQ0 |
| |
| From: Sergey Shtylyov <s.shtylyov@omp.ru> |
| |
| commit 5ef9b803a4af0f5e42012176889b40bb2a978b18 upstream. |
| |
| The AlphaProject AP-SH4A-3A/AP-SH4AD-0A SH boards use IRQ0 for their SMSC |
| LAN911x Ethernet chip, so the networking on them must have been broken by |
| commit 965b2aa78fbc ("net/smsc911x: fix irq resource allocation failure") |
| which filtered out 0 as well as the negative error codes -- it was kinda |
| correct at the time, as platform_get_irq() could return 0 on of_irq_get() |
| failure and on the actual 0 in an IRQ resource. This issue was fixed by |
| me (back in 2016!), so we should be able to fix this driver to allow IRQ0 |
| usage again... |
| |
| When merging this to the stable kernels, make sure you also merge commit |
| e330b9a6bb35 ("platform: don't return 0 from platform_get_irq[_byname]() |
| on error") -- that's my fix to platform_get_irq() for the DT platforms... |
| |
| Fixes: 965b2aa78fbc ("net/smsc911x: fix irq resource allocation failure") |
| Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru> |
| Link: https://lore.kernel.org/r/656036e4-6387-38df-b8a7-6ba683b16e63@omp.ru |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/smsc/smsc911x.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/smsc/smsc911x.c |
| +++ b/drivers/net/ethernet/smsc/smsc911x.c |
| @@ -2441,7 +2441,7 @@ static int smsc911x_drv_probe(struct pla |
| if (irq == -EPROBE_DEFER) { |
| retval = -EPROBE_DEFER; |
| goto out_0; |
| - } else if (irq <= 0) { |
| + } else if (irq < 0) { |
| pr_warn("Could not allocate irq resource\n"); |
| retval = -ENODEV; |
| goto out_0; |