openwrt/target/linux/ramips
DENG Qingfang f99c9cd9c4 ramips: mt7530 swconfig: fix race condition in register access
The mt7530_{r,w}32 operation over MDIO uses 3 mdiobus operations and
does not hold a lock, which causes a race condition when multiple
threads try to access a register, they may get unexpected results.

To avoid this, handle the MDIO lock manually, and use the unlocked
__mdiobus_{read,write} in the critical section.

This fixes the "Ghost VLAN" artifact[1] in MT7530/7621 when the VLAN
operation and the swconfig LED link status poll race between each other.

[1] https://forum.openwrt.org/t/mysterious-vlan-ids-on-mt7621-device/64495

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-04-15 00:00:54 +08:00
..
base-files/etc ramips: remove model name from LED labels 2020-10-02 14:51:57 +02:00
dts ramips: improve pinctrl for Youku YK-L1 2021-04-10 20:48:26 +02:00
files/drivers ramips: mt7530 swconfig: fix race condition in register access 2021-04-15 00:00:54 +08:00
image ramips: rt305x: use lzma-loader for ZyXEL Keenetic Lite rev.B 2021-04-08 09:20:59 +02:00
mt76x8 treewide: remove execute bit and shebang from board.d files 2021-03-06 11:30:06 +01:00
mt7620 ramips: improve pinctrl for Youku YK-L1 2021-04-10 20:48:26 +02:00
mt7621 ramips/mt7621: enable support for cpuidle 2021-03-31 00:58:49 +01:00
patches-5.4 kernel: bump 5.4 to 5.4.106 2021-03-21 22:45:20 +01:00
patches-5.10 ramips: drop obsolete arcs_cmdline override patch 2021-04-15 00:00:54 +08:00
rt288x treewide: remove execute bit and shebang from board.d files 2021-03-06 11:30:06 +01:00
rt305x treewide: remove execute bit and shebang from board.d files 2021-03-06 11:30:06 +01:00
rt3883 treewide: remove execute bit and shebang from board.d files 2021-03-06 11:30:06 +01:00
Makefile ramips: 5.10: port and refresh patches, ralink drv 2021-03-06 11:24:12 +01:00
modules.mk ramips: rename mtk-hsdma to hsdma-mt7621 2021-03-04 23:43:02 -10:00