[SRU][R][PATCH 0/1] Ethernet adapter unusable after suspend/resume on Advantech systems with Intel I226-V
AceLan Kao
acelan.kao at canonical.com
Thu Aug 13 05:47:48 UTC 2026
From: "Chia-Lin Kao (AceLan)" <acelan.kao at canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2163375
[Impact]
After resuming from S3 suspend, the wired network interface on Advantech systems with Intel I226-V (igc driver) cannot be re-enabled. The adapter stays disabled and trying to bring the interface up fails. ethtool reports "no such device" (ENODEV). Only reloading the igc driver recovers thedevice.
Hits every suspend/resume cycle. Reproduced on 7.0.0-27-generic and 7.0.0-28-generic, and on mainline 7.2-rc3.
Root cause: __igc_resume() only re-attaches the net device (netif_device_attach()) inside the interface-running branch. When the interface is down during suspend, it is never re-attached, and every later attempt to open it fails the netif_device_present() check in __dev_open() with -ENODEV. On Ubuntu this triggers on every sleep: NetworkManager brings managed interfaces down before suspend unless Wake-on-LAN is enabled. The failurewas confirmed to be in the igc suspend/resume path, not in NetworkManager, DHCP, cabling, or PCI enumeration.
[Fix]
Re-attach the net device on every successful resume, matching what igb and e1000e already do.
Upstream commit b0ce5fd9fabe7c79463cf4602217d4dfeff5b1fd, merged in v7.2-rc7.
Fixes: 6f31d6b643a3 ("igc: Refactor runtime power management flow")
[Test Plan]
1. Note the interface name (enp44s0 on the affected system):
$ ip link
2. Take the interface down before suspending:
$ sudo ip link set <iface> down
3. Suspend and wake:
$ sudo rtcwake -m mem -s 20
4. Bring the interface back up, then check link:
$ sudo ip link set <iface> up
$ ethtool -i <iface>
Without patch: "ip link set <iface> up" fails with ENODEV, ethtool -i returns "No such device", interface stays down. dmesg shows the igc suspend/resume sequence but no error.
With patch: the interface comes up cleanly, ethtool -i answers, and the device gets a link / DHCP address.
This is the default setup on Ubuntu: no WoL configured means NetworkManager takes the interface down before sleep, so a plain rtcwake cycle reproduces it. On the affected systems the ticket also used sudo fwts s3 --s3-multiple=10 --s3-sleep-delay=15, which reproduced the failure under stress.
[Where problems could occur]
Could break the igc driver resume path.
If the re-attach logic is wrong, the device state after resume could be inconsistent: the interface might come up with no carrier, or re-attach could race with dev_open() and cause double-open or a missed configuration. In the worst case a regression here would leave the interface stuck inthe up-but-no-link state, or with ethtool reporting the device present when the hardware still has not resumed, producing timeouts on the first transmit. The resume path is also shared with runtime PM (igc_runtime_resume), so a slip could affect runtime power transitions, not just S3. Both would show up as "network down after wakeup" or "no link" in dmesg and need a driver reload to recover.
Philipp David (1):
igc: fix netdev not re-attached after resume if interface is down
drivers/net/ethernet/intel/igc/igc_main.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
--
2.53.0
More information about the kernel-team
mailing list