[PATCH 3/4] net: systemport: Propagate IRQ lookup errors
From: phucduc . bui
Date: Thu Aug 20 2026 - 07:23:50 EST
From: bui duc phuc <phucduc.bui@xxxxxxxxx>
Propagate the error codes returned by platform_get_irq() and
platform_get_irq_optional() instead of converting them to -EINVAL.
For the optional WoL IRQ, allow -ENXIO to indicate that the IRQ is not
available, but propagate any other error returned by the IRQ lookup.
Found by manual code inspection.
Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
drivers/net/ethernet/broadcom/bcmsysport.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index 4d06c6ba6641..2acaffccdb08 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -2499,14 +2499,22 @@ static int bcm_sysport_probe(struct platform_device *pdev)
priv->num_rx_desc_words = params->num_rx_desc_words;
priv->irq0 = platform_get_irq(pdev, 0);
+ if (priv->irq0 < 0) {
+ ret = priv->irq0;
+ goto err_free_netdev;
+ }
if (!priv->is_lite) {
priv->irq1 = platform_get_irq(pdev, 1);
priv->wol_irq = platform_get_irq_optional(pdev, 2);
} else {
priv->wol_irq = platform_get_irq_optional(pdev, 1);
}
- if (priv->irq0 <= 0 || (priv->irq1 <= 0 && !priv->is_lite)) {
- ret = -EINVAL;
+ if (priv->irq1 < 0 && !priv->is_lite) {
+ ret = priv->irq1;
+ goto err_free_netdev;
+ }
+ if (priv->wol_irq < 0 && priv->wol_irq != -ENXIO) {
+ ret = priv->wol_irq;
goto err_free_netdev;
}
--
2.43.0