From 75a73afd0b32d19512f50db197e8794456e4f738 Mon Sep 17 00:00:00 2001 From: bui duc phuc Date: Wed, 9 Sep 2026 11:57:37 +0700 Subject: [PATCH] net: davicom: Propagate wakeup IRQ errors The wakeup IRQ is optional, but errors from platform_get_irq_optional() are currently ignored. Propagate errors from the IRQ lookup, except -ENXIO which indicates that the optional IRQ is not available. Found by manual code inspection. Cc: stable+noautosel@kernel.org # untested fix to unlikely driver error path Signed-off-by: bui duc phuc Reviewed-by: Simon Horman Link: https://patch.msgid.link/20260909045738.16705-1-phucduc.bui@gmail.com Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/davicom/dm9000.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/davicom/dm9000.c b/drivers/net/ethernet/davicom/dm9000.c index b87eaf0c250c..e294b365eb06 100644 --- a/drivers/net/ethernet/davicom/dm9000.c +++ b/drivers/net/ethernet/davicom/dm9000.c @@ -1511,7 +1511,11 @@ dm9000_probe(struct platform_device *pdev) } db->irq_wake = platform_get_irq_optional(pdev, 1); - if (db->irq_wake >= 0) { + if (db->irq_wake < 0 && db->irq_wake != -ENXIO) { + ret = db->irq_wake; + goto out; + } + if (db->irq_wake > 0) { dev_dbg(db->dev, "wakeup irq %d\n", db->irq_wake); ret = request_irq(db->irq_wake, dm9000_wol_interrupt,