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

Kevin Hao
2026-04-01T09:32:26Z

[-- Attachment #1: Type: text/plain, Size: 2911 bytes --]

On Tue, Mar 31, 2026 at 07:55:17PM -0700, Jakub Kicinski wrote:
> On Sat, 28 Mar 2026 18:17:48 +0800 Kevin Hao wrote:
> > In the current implementation, the suspend/resume path frees the
> > existing IRQ handler and sets up a dedicated WoL IRQ handler, then
> > restores the original handler upon resume. This approach is not used
> > by any other Ethernet driver and unnecessarily complicates the
> > suspend/resume process. After adjusting the IRQ handler in the previous
> > patches, we can now handle WoL interrupts without introducing any
> > overhead in the TX/RX hot path. Therefore, the dedicated WoL IRQ
> > handler is removed.
>
> Couple of sentences on testing (platform + flows) would be great here.

I have verified WoL functionality on my AMD ZynqMP board using the following
steps. I will include this information in the v2 commit.

root@amd-zynqmp:~# ifconfig end0 192.168.3.3
root@amd-zynqmp:~# ethtool -s end0 wol a
root@amd-zynqmp:~# echo mem >/sys/power/state
PM: suspend entry (deep)
Filesystems sync: 0.055 seconds
Freezing user space processes
Freezing user space processes completed (elapsed 0.006 seconds)
OOM killer disabled.
Freezing remaining freezable tasks
Freezing remaining freezable tasks completed (elapsed 0.004 seconds)
printk: Suspending console(s) (use no_console_suspend to debug)
macb ff0e0000.ethernet: gem-ptp-timer ptp clock unregistered.
e1000e: EEE TX LPI TIMER: 00000000
xuartps ff000000.serial: ttyPS0: Unable to drain transmitter
Disabling non-boot CPUs ...
psci: CPU3 killed (polled 0 ms)
psci: CPU2 killed (polled 0 ms)
psci: CPU1 killed (polled 0 ms)
Enabling non-boot CPUs ...
Detected VIPT I-cache on CPU1
CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
CPU1 is up
Detected VIPT I-cache on CPU2
CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
CPU2 is up
Detected VIPT I-cache on CPU3
CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
CPU3 is up
macb ff0e0000.ethernet end0: Link is Down
macb ff0e0000.ethernet end0: configuring for phy/rgmii-id link mode
macb ff0e0000.ethernet end0: Link is Up - 1Gbps/Full - flow control tx
ptp ptp0: PM: parent end0 should not be sleeping
macb ff0e0000.ethernet: gem-ptp-timer ptp clock registered.
phy phy-fd400000.phy.2: phy_power_on was called before phy_init
ata1: SATA link down (SStatus 0 SControl 330)
ata2: SATA link down (SStatus 0 SControl 330)
e1000e 0000:01:00.0 enp1s0: Hardware Error
OOM killer enabled.
Restarting tasks: Starting
Restarting tasks: Done
random: crng reseeded on system resumption
PM: suspend exit
root@amd-zynqmp:~# e1000e 0000:01:00.0 enp1s0: Hardware Error

root@amd-zynqmp:~# e1000e 0000:01:00.0 enp1s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

root@amd-zynqmp:~#

Thanks,
Kevin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]