Public bug reported:
[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.
** Affects: hwe-next
Importance: Undecided
Status: New
** Affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Affects: linux (Ubuntu Resolute)
Importance: Undecided
Assignee: AceLan Kao (acelankao)
Status: In Progress
** Tags: anding oem-priority originate-from-2160582
** Also affects: linux (Ubuntu Resolute)
Importance: Undecided
Status: New
** Tags added: anding oem-priority originate-from-2160582
** Changed in: linux (Ubuntu Resolute)
Status: New => In Progress
** Changed in: linux (Ubuntu Resolute)
Assignee: (unassigned) => AceLan Kao (acelankao)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2163375
Title:
Ethernet adapter unusable after suspend/resume on Advantech systems
with Intel I226-V
To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/2163375/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs