* [PATCH v2 1/2] net: xilinx: axienet: Propagate errors from optional IRQ lookup
@ 2026-08-13 4:20 phucduc.bui
2026-08-13 4:20 ` [PATCH v2 2/2] net: xilinx: axienet: Handle optional IRQ return value correctly phucduc.bui
0 siblings, 1 reply; 2+ messages in thread
From: phucduc.bui @ 2026-08-13 4:20 UTC (permalink / raw)
To: Radhey Shyam Pandey, Andrew Lunn, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michal Simek
Cc: linux-arm-msm, netdev, linux-arm-kernel, linux-kernel,
bui duc phuc
From: bui duc phuc <phucduc.bui@gmail.com>
platform_get_irq_optional() returns a positive IRQ number on success or
a negative error code on failure. For an optional IRQ, -ENXIO indicates
that no optional IRQ is available, while other errors should be propagated.
Propagate all error codes returned by platform_get_irq_optional() other
than -ENXIO.
Another call to platform_get_irq_optional() in the same function already
handles the return value this way. Apply the same error handling to this
call site for consistency.
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index fcf517069d16..d23e9796725d 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -2957,12 +2957,16 @@ static int axienet_probe(struct platform_device *pdev)
lp->tx_irq = irq_of_parse_and_map(np, 0);
of_node_put(np);
lp->eth_irq = platform_get_irq_optional(pdev, 0);
+ if (lp->eth_irq < 0 && lp->eth_irq != -ENXIO)
+ return lp->eth_irq;
} else {
/* Check for these resources directly on the Ethernet node. */
lp->dma_regs = devm_platform_get_and_ioremap_resource(pdev, 1, NULL);
lp->rx_irq = platform_get_irq(pdev, 1);
lp->tx_irq = platform_get_irq(pdev, 0);
lp->eth_irq = platform_get_irq_optional(pdev, 2);
+ if (lp->eth_irq < 0 && lp->eth_irq != -ENXIO)
+ return lp->eth_irq;
}
if (IS_ERR(lp->dma_regs)) {
dev_err(&pdev->dev, "could not map DMA regs\n");
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* [PATCH v2 2/2] net: xilinx: axienet: Handle optional IRQ return value correctly
2026-08-13 4:20 [PATCH v2 1/2] net: xilinx: axienet: Propagate errors from optional IRQ lookup phucduc.bui
@ 2026-08-13 4:20 ` phucduc.bui
0 siblings, 0 replies; 2+ messages in thread
From: phucduc.bui @ 2026-08-13 4:20 UTC (permalink / raw)
To: Radhey Shyam Pandey, Andrew Lunn, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Michal Simek
Cc: linux-arm-msm, netdev, linux-arm-kernel, linux-kernel,
bui duc phuc
From: bui duc phuc <phucduc.bui@gmail.com>
lp->eth_irq is assigned from platform_get_irq_optional(), which returns
a non-zero interrupt number on success or a negative error number on
failure. Errors other than -ENXIO are handled before this check,
so -ENXIO is the only error value that can reach this point.
Check for a negative value instead of treating 0 as an undefined IRQ.
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index d23e9796725d..7ef099db1bcf 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -3051,7 +3051,7 @@ static int axienet_probe(struct platform_device *pdev)
ndev->ethtool_ops = &axienet_ethtool_ops;
}
/* Check for Ethernet core IRQ (optional) */
- if (lp->eth_irq <= 0)
+ if (lp->eth_irq < 0)
dev_info(&pdev->dev, "Ethernet core IRQ not defined\n");
/* Retrieve the MAC address */
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-13 4:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-13 4:20 [PATCH v2 1/2] net: xilinx: axienet: Propagate errors from optional IRQ lookup phucduc.bui
2026-08-13 4:20 ` [PATCH v2 2/2] net: xilinx: axienet: Handle optional IRQ return value correctly phucduc.bui
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.