linux-xiaomi-chiron/drivers
Joakim Zhang 276aae3772 net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume
commit 5f58591323 ("net: stmmac: delete the eee_ctrl_timer after
napi disabled"), this patch tries to fix system hang caused by eee_ctrl_timer,
unfortunately, it only can resolve it for system reboot stress test. System
hang also can be reproduced easily during system suspend/resume stess test
when mount NFS on i.MX8MP EVK board.

In stmmac driver, eee feature is combined to phylink framework. When do
system suspend, phylink_stop() would queue delayed work, it invokes
stmmac_mac_link_down(), where to deactivate eee_ctrl_timer synchronizly.
In above commit, try to fix issue by deactivating eee_ctrl_timer obviously,
but it is not enough. Looking into eee_ctrl_timer expire callback
stmmac_eee_ctrl_timer(), it could enable hareware eee mode again. What is
unexpected is that LPI interrupt (MAC_Interrupt_Enable.LPIEN bit) is always
asserted. This interrupt has chance to be issued when LPI state entry/exit
from the MAC, and at that time, clock could have been already disabled.
The result is that system hang when driver try to touch register from
interrupt handler.

The reason why above commit can fix system hang issue in stmmac_release()
is that, deactivate eee_ctrl_timer not just after napi disabled, further
after irq freed.

In conclusion, hardware would generate LPI interrupt when clock has been
disabled during suspend or resume, since hardware is in eee mode and LPI
interrupt enabled.

Interrupts from MAC, MTL and DMA level are enabled and never been disabled
when system suspend, so postpone clocks management from suspend stage to
noirq suspend stage should be more safe.

Fixes: 5f58591323 ("net: stmmac: delete the eee_ctrl_timer after napi disabled")
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-09-08 12:28:26 +01:00
..
accessibility
acpi Merge branch 'akpm' (patches from Andrew) 2021-09-03 10:08:28 -07:00
amba
android
ata libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD. 2021-09-03 08:06:02 -06:00
atm
auxdisplay
base Merge branch 'stable/for-linus-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb 2021-09-03 10:34:44 -07:00
bcma Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
block block-5.15-2021-09-05 2021-09-06 10:06:26 -07:00
bluetooth Bluetooth: btusb: Remove WAKEUP_DISABLE and add WAKEUP_AUTOSUSPEND for Realtek devices 2021-08-19 17:08:31 +02:00
bus ARM: SoC drivers for 5.15 2021-09-01 15:25:28 -07:00
cdrom
char parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
clk - Core Frameworks 2021-09-07 12:38:59 -07:00
clocksource - converted Pistachio platform to use MIPS generic kernel 2021-09-03 11:11:54 -07:00
comedi
connector
counter
cpufreq powerpc updates for 5.15 2021-09-03 11:22:50 -07:00
cpuidle - Core Frameworks 2021-09-07 12:38:59 -07:00
crypto crypto: ccp - Add support for new CCP/PSP device ID 2021-08-27 16:30:18 +08:00
cxl
dax Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
dca
devfreq
dio
dma ARM: SoC drivers for 5.15 2021-09-01 15:25:28 -07:00
dma-buf
edac Updates to the interrupt core and driver subsystems: 2021-08-30 14:38:37 -07:00
eisa
extcon
firewire
firmware Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2021-09-07 13:08:08 -07:00
fpga Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
fsi
gnss
gpio gpio updates for v5.15 2021-09-07 12:27:27 -07:00
gpu Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
greybus
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2021-09-02 14:30:46 -07:00
hsi
hv hyperv-next for 5.15 2021-09-01 18:25:20 -07:00
hwmon hwmon: add driver for Aquacomputer D5 Next 2021-08-28 08:53:30 -07:00
hwspinlock
hwtracing Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
i2c platform-drivers-x86 for v5.15-1 2021-09-02 13:49:39 -07:00
i3c
idle
iio IIO / Staging driver update for 5.15-rc1 2021-09-01 09:45:57 -07:00
infiniband SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
input parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
interconnect interconnect changes for 5.15 2021-08-24 15:33:04 +02:00
iommu IOMMU Updates for Linux v5.15 2021-09-03 10:44:35 -07:00
ipack TTY / Serial patches for 5.15-rc1 2021-09-01 09:51:16 -07:00
irqchip Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next 2021-08-23 09:50:46 +01:00
isdn Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
leds leds: pca955x: Switch to i2c probe_new 2021-08-20 11:00:08 +02:00
macintosh Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
mailbox mailbox: cmdq: add multi-gce clocks support for mt8195 2021-08-31 22:57:45 -05:00
mcb
md integrity-v5.15 2021-09-02 12:51:41 -07:00
media media updates for v5.15-rc1 2021-09-01 10:34:52 -07:00
memory
memstick Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
message
mfd - Core Frameworks 2021-09-07 12:38:59 -07:00
misc platform-drivers-x86 for v5.15-1 2021-09-02 13:49:39 -07:00
mmc Merge branch 'akpm' (patches from Andrew) 2021-09-03 10:08:28 -07:00
most
mtd MTD changes: 2021-09-05 10:50:12 -07:00
mux
net net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume 2021-09-08 12:28:26 +01:00
nfc nfc: st95hf: remove unused header includes 2021-08-26 09:13:36 +01:00
ntb Bug fixes and clean-ups for Linux v5.15 2021-09-07 13:05:02 -07:00
nubus
nvdimm Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
nvme for-5.15/drivers-2021-08-30 2021-08-30 19:01:46 -07:00
nvmem
of Merge branch 'stable/for-linus-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb 2021-09-03 10:34:44 -07:00
opp Merge branches 'pm-pci', 'pm-sleep', 'pm-domains' and 'powercap' 2021-08-30 19:25:42 +02:00
parisc parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
parport parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
pci Merge branch 'stable/for-linus-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb 2021-09-03 10:34:44 -07:00
pcmcia
perf
phy - converted Pistachio platform to use MIPS generic kernel 2021-09-03 11:11:54 -07:00
pinctrl Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
platform platform-drivers-x86 for v5.15-1 2021-09-02 13:49:39 -07:00
pnp
power power supply and reset changes for the v5.15 series 2021-08-30 11:47:32 -07:00
powercap powercap: Add Power Limit4 support for Alder Lake SoC 2021-08-25 20:12:16 +02:00
pps
ps3
ptp ptp: ocp: Simplify Kconfig. 2021-08-26 12:06:42 +01:00
pwm
rapidio
ras
regulator Merge remote-tracking branch 'regulator/for-5.14' into regulator-linus 2021-08-25 16:05:24 +01:00
remoteproc
reset ARM: SoC drivers for 5.15 2021-09-01 15:25:28 -07:00
rpmsg
rtc
s390 SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sbus
scsi Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
sh
siox
slimbus Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
soc ARM: SoC drivers for 5.15 2021-09-01 15:25:28 -07:00
soundwire sound updates for 5.15-rc1 2021-09-01 10:29:29 -07:00
spi ARM: SoC drivers for 5.15 2021-09-01 15:25:28 -07:00
spmi
ssb
staging Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
target SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
tc
tee
thermal platform-drivers-x86 for v5.15-1 2021-09-02 13:49:39 -07:00
thunderbolt thunderbolt: test: split up test cases in tb_test_credit_alloc_all 2021-09-06 12:27:03 -07:00
tty parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
uio
usb More USB changes for 5.15-rc1 2021-09-05 11:19:15 -07:00
vdpa Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
vfio VFIO update for v5.15-rc1 2021-09-02 13:41:33 -07:00
vhost sock: remove one redundant SKB_FRAG_PAGE_ORDER macro 2021-08-26 10:46:20 +01:00
video - Fix-ups 2021-09-07 12:50:01 -07:00
virt
virtio Driver core update for 5.15-rc1 2021-09-01 08:44:42 -07:00
visorbus
vlynq
vme
w1
watchdog watchdog: ixp4xx: Rewrite driver to use core 2021-08-22 10:28:12 +02:00
xen Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
zorro
Kconfig remove the lightnvm subsystem 2021-08-14 15:54:09 -06:00
Makefile remove the lightnvm subsystem 2021-08-14 15:54:09 -06:00