openwrt/target
DENG Qingfang 718e97c5c8 ramips: mt7530 swconfig: fix race condition in register access
[ Upstream commit f99c9cd9c4 ]

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>
(cherry picked from commit f99c9cd9c4)
2021-05-02 14:43:09 +02:00
..
imagebuilder imagebuilder: pass IB=1 on checking requirements 2021-01-19 12:59:49 -10:00
linux ramips: mt7530 swconfig: fix race condition in register access 2021-05-02 14:43:09 +02:00
sdk sdk: use bundle-libraries.sh to ship kernel objtool tools 2019-09-04 13:47:04 +02:00
toolchain target/toolchain/files/wrapper.sh: simplify 'case' 2019-09-04 13:28:08 +02:00
Config.in build: add a config option for enabling a testing version of the target kernel 2019-05-11 11:37:10 +02:00
Makefile build: make <subdir>/install opt-in, use it for target/ only 2017-02-09 13:51:35 +01:00