Re: PROBLEM: Marvell 88E8040 (sky2) fails after hibernation
From: Octavio Alvarez
Date: Mon Jul 15 2019 - 12:40:36 EST
On 6/27/19 9:38 AM, Thomas Gleixner wrote:
I did two tests:
If I boot with sky2.disable_msi=1 on the kernel cmdline then the problem goes
away (when back from hibernation, the NIC works OK).
If I boot regularly (disable_msi not set) and then do modprobe -r sky2;
modprobe sky2 disable_msi=1, the problem stays (when back from hibernation,
the NIC does not work).
Interesting. Did you verify that the driver still uses INTx after
hibernation in /proc/interrupts?
cat /proc/interrupts | grep eth0
The 6st column should show IO-APIC for INTx. If it shows PCI-MSI then
something went wrong
Hi, Thomas,
If I reboot with sky2.disable_msi=1, then I get IO-APIC and the bug does
not occur:
19: 0 0 0 0 IO-APIC 19-fasteoi eth0
However, if I reboot without sky2.disable_msi=1 it properly starts as
PCI-MSI and then, after re-modprobing it it goes to IO-APIC, but the bug
occurs anyway:
$ cat /proc/interrupts | grep eth
27: 0 1 0 0 PCI-MSI 3145728-edge
eth0
$ sudo modprobe -r sky2
[sudo] password for alvarezp:
$ sudo modprobe sky2 disable_msi=1
$ # hibernating and coming back hibernation
$ cat /proc/interrupts | grep eth
19: 0 0 0 0 IO-APIC 19-fasteoi
eth0
Also please check Linus suspicion about the module being reloaded after
hibernation through some distro magic.
This is not happening. Each time the driver is loaded the message "sky2:
driver version 1.30" is shown.
I confirm only 1 line for the sky2.disable_msi=1 from kernel boot and
only 2 lines for re-modprobing.
Best regards,
Octavio.