mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
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> |
||
---|---|---|
.. | ||
esw_rt3050.c | ||
esw_rt3050.h | ||
ethtool.c | ||
ethtool.h | ||
gsw_mt7620.c | ||
gsw_mt7620.h | ||
Kconfig | ||
Makefile | ||
mdio_mt7620.c | ||
mdio_rt2880.c | ||
mdio_rt2880.h | ||
mdio.c | ||
mdio.h | ||
mt7530.c | ||
mt7530.h | ||
mtk_eth_soc.c | ||
mtk_eth_soc.h | ||
soc_mt7620.c | ||
soc_rt2880.c | ||
soc_rt3050.c | ||
soc_rt3883.c |