I have this network card: 02:00.0 Ethernet controller: JMicron Technology Corp. JMC260 PCI Express Fast Ethernet Controller (rev 03) Every time I initiate a suspend 'systemctl suspend' the machine hangs at resume unless I unload the jme driver. I can also suspend the computer when the driver is loaded but when the link is down: 'ip link set ens34 down' However, as soon as the link is up, the hang occurs again. Here is a call trace I was able to get after it hanged: <IRQ> tasklet_action+0xb0/0xd0 __do_softirq+0xcf/0x290 irq_exit+0xa3/0xb0 do_IRQ+0x54/0xd0 common_interrupt+0x82/0x82 <EOI> jme_start_irq+0x84/0xa0 [jme] jme_resume+0x12f/0x210 [jme] pci_pm_resume+0x64/0xa0 ? pci_pm_thaw+0x90/0x90 dpm_run_callback+0x4e/0x130 device_resume+0xd3/0x1f0 async_resume+0x1d/0x50 async_run_entry_fn+0x48/0x150 process_one_work+0x14b/0x440 worker_thread+0x48/0x4a0 ? process_one_work+0x440/0x440 kthread+0xd8/0xf0 ? kthread_worker_fn+0x170/0x170 ret_from_fork+0x3f/0x70 ? kthread_worker_fn+0x170/0x170 I run Arch Linux (x86-64), I also tried compiling the latest kernel from git but the problem is still there, I also went back to Linux 3.11 so I could try to git bisect the issue, but the problem was there in the 3.11 kernel as well. Please let me know if you need any other information.
This is on a desktop computer BTW, not a laptop.
Created attachment 203571 [details] lspci
Created attachment 203581 [details] dmidecode
I think this is probably a race condition, because I managed to resume from suspend a few times while testing this, and when the device was up, but this happened very random and it was rare. Most of the time (99% of the time) it just hangs after resume from suspend.
I mean, the hang only occurs when the device is up, if the device is down (ip link set ens34 down) the hang doesn't occur.
Tried all these parameters from the module, no effect: parm: force_pseudohp:Enable pseudo hot-plug feature manually by driver instead of BIOS. (int) parm: no_pseudohp:Disable pseudo hot-plug feature. (int) parm: no_extplug:Do not use external plug signal for pseudo hot-plug. (int)
So I found that disabling async helps with my issue, e.g. $ echo 0 > /sys/power/pm_async I can't reproduce the hang anymore, tried suspend/resume almost ~15 times.
Anyone please?
Fixed here: https://lkml.org/lkml/2016/2/22/994
Latest patch: https://lkml.org/lkml/2016/2/23/450 https://patchwork.kernel.org/patch/8393531/