[PATCH 4/4] net: bcmgenet: Propagate WoL IRQ errors
From: phucduc . bui
Date: Thu Aug 20 2026 - 07:26:32 EST
From: bui duc phuc <phucduc.bui@xxxxxxxxx>
Propagate errors from platform_get_irq_optional() instead of only
handling -EPROBE_DEFER. Allow -ENXIO to indicate that the optional
WoL IRQ is not available.
Also propagate errors from devm_request_irq() instead of continuing
the probe when the WoL IRQ cannot be requested.
Found by manual code inspection.
Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index a2305e6428d1..c1c66a52efd0 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3993,7 +3993,7 @@ static int bcmgenet_probe(struct platform_device *pdev)
goto err;
}
priv->wol_irq = platform_get_irq_optional(pdev, 2);
- if (priv->wol_irq == -EPROBE_DEFER) {
+ if (priv->wol_irq < 0 && priv->wol_irq != -ENXIO) {
err = priv->wol_irq;
goto err;
}
@@ -4033,8 +4033,10 @@ static int bcmgenet_probe(struct platform_device *pdev)
if (priv->wol_irq > 0) {
err = devm_request_irq(&pdev->dev, priv->wol_irq,
bcmgenet_wol_isr, 0, dev->name, priv);
- if (!err)
- device_set_wakeup_capable(&pdev->dev, 1);
+ if (err)
+ goto err;
+
+ device_set_wakeup_capable(&pdev->dev, 1);
}
/* Set the needed headroom to account for any possible
--
2.43.0