[PATCH net-next 0/4] net: macb: Remove dedicated IRQ handler for WoL

Kevin Hao
2026-03-28T10:18:12Z

During debugging of a suspend/resume issue, I observed that the macb driver
employs a dedicated IRQ handler for Wake-on-LAN (WoL) support. To my knowledge,
no other Ethernet driver adopts this approach. This implementation unnecessarily
complicates the suspend/resume process without providing any clear benefit.
Instead, we can easily modify the existing IRQ handler to manage WoL events,
avoiding any overhead in the TX/RX hot path.

I am skeptical that the minor optimizations to the IRQ handler proposed in this
patch series would yield any measurable performance improvement. However, it
does appear that the execution time of the macb_interrupt() function is
slightly reduced.

The following data(net throughput and execution time of macb_interrupt) were
collected from my AMD Zynqmp board using the commands:
taskset -c 1,2,3 iperf3 -c 192.168.3.4 -t 60 -Z -P 3 -R
cat /sys/kernel/debug/tracing/trace_stat/function0

Before:
-------
[SUM] 0.00-60.00 sec 5.99 GBytes 857 Mbits/sec 0 sender
[SUM] 0.00-60.00 sec 5.98 GBytes 856 Mbits/sec receiver

Function Hit Time Avg s^2
-------- --- ---- --- ---
macb_interrupt 218538 723327.5 us 3.309 us 1.022 us

After:
------
[SUM] 0.00-60.00 sec 5.99 GBytes 857 Mbits/sec 0 sender
[SUM] 0.00-60.00 sec 5.98 GBytes 857 Mbits/sec receiver

Function Hit Time Avg s^2
-------- --- ---- --- ---
macb_interrupt 218558 646355.1 us 2.957 us 1.290 us

---
Kevin Hao (4):
net: macb: Replace open-coded implementation with napi_schedule()
net: macb: Consolidate MACB_CAPS_ISR_CLEAR_ON_WRITE checks in IRQ handler
net: macb: Factor out the handling of non-hot IRQ events into a separate function
net: macb: Remove dedicated IRQ handler for WoL

drivers/net/ethernet/cadence/macb_main.c | 244 +++++++++++++------------------
1 file changed, 102 insertions(+), 142 deletions(-)
---
base-commit: 3b058d1aeeeff27a7289529c4944291613b364e9
change-id: 20260321-macb-irq-453ee09b3394

Best regards,
--
Kevin Hao <haokexin@gmail.com>