openwrt/target/linux
Markus Stockhausen 461fc06f9d
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Waiting to run
Build host tools / Build host tools for linux and macos based systems (push) Waiting to run
realtek: fix mdio parent/child locking issues
Since the early beginning of the Realtek DSA driver there is an uncovered
locking issue between the standard (parent) mdio bus and the DSA (child)
mdio bus. This comes from the fact that the DSA bus simply links to the
parent read and write functions and calls them directly. This leads to
the following lock issue.

- Child bus calls phy_read/write functions and uses its internal lock
- Parent bus calls phy_read/write functions and uses its internal lock

It becomes clear that critical section can be accessed twice without
knowing that a operation from the other bus is currently active. This
can lead to critical malfunctions because the mdio driver needs a lot of
internal magic to get page selection done right. Effects are:

- The original page is lost after a phy_write/read_paged() call
- dmesg like "Realtek RTL8218B (external) rtl838x slave mii-0:00:
  Expected external RTL8218B, found PHY-ID 6b23"

Other DSA drivers simply use the read/write functions from the parent bus
and thus avoid locking issues. Do it the same way.

Fixes: 2b88563ee5 ("realtek: update the tree to the latest refactored version")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18824
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-05-22 18:58:58 +02:00
..
airoha kernel: bump 6.6 to 6.6.89 2025-05-03 19:57:53 +02:00
apm821xx apm821xx: replace kmod-usb3 with kmod-usb-xhci-pci-renesas 2025-05-17 20:14:27 +02:00
archs38 kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
armsr armsr: drop GC sections ARMv7 patch 2025-04-14 10:28:50 +02:00
at91 treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
ath79 ath79: remove platform_device_id from drivers 2025-05-22 11:17:21 +02:00
bcm27xx bcm27xx: refresh patches for v6.12.29 2025-05-21 17:20:07 +02:00
bcm47xx treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
bcm53xx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
bcm4908 bcm63xx-cfe: install into image staging dir 2025-04-13 10:44:19 +02:00
bmips treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
d1 d1: add 6.12 kernel as testing 2025-05-22 17:22:59 +02:00
gemini Revert "gemini: Add module for VSC73xx switches" 2025-05-02 19:17:53 +02:00
generic generic: backport upstream v6.16 Realtek PHY patches 2025-05-22 14:18:20 +02:00
imx kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
ipq40xx treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
ipq806x treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
ixp4xx kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
kirkwood treewide: dts: trim "#size-cells" from "gpio-export" node 2025-05-18 19:35:00 +02:00
lantiq treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
layerscape kernel: bump 6.6 to 6.6.88 2025-05-03 19:57:53 +02:00
loongarch64 kernel: Add KERNEL_DCB (Data Center Bridging) 2025-03-09 17:05:26 +01:00
malta kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
mediatek treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
mpc85xx treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
mvebu mvebu: armada37xx: add pending PXA I2C recovery fix 2025-05-20 20:54:48 +02:00
mxs mxs: add 6.12 kernel as testing 2025-05-22 11:03:05 +02:00
octeon octeon: force pcs reset to fix qca833x traffic 2025-04-02 10:04:52 +02:00
omap kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
pistachio kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
qoriq kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
qualcommax qualcommax: default to 6.12 2025-05-20 11:40:43 +02:00
qualcommbe qualcommbe: ipq95xx: fix ipq-uniphy crash on IPQ9554 2025-05-12 15:06:24 +02:00
ramips ramips: fix wrg-header image recipe 2025-05-22 18:49:31 +02:00
realtek realtek: fix mdio parent/child locking issues 2025-05-22 18:58:58 +02:00
rockchip rockchip: backport PCIe MSI fixes for RK356x SoC 2025-05-17 11:30:20 +02:00
sifiveu kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
siflower treewide: strip trailing whitespace 2025-05-20 00:47:37 +02:00
starfive kernel: bump 6.6 to 6.6.90 2025-05-13 21:43:34 +02:00
stm32 stm32: Add kmod-stm32-thermal 2025-04-19 18:41:29 +02:00
sunxi kernel: Activate CONFIG_NET_SWITCHDEV in generic config 2025-03-15 13:54:59 +01:00
tegra kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
uml uml: fix glibc-static check with GCC14 2024-06-22 22:06:06 +02:00
x86 kernel: bump 6.12 to 6.12.29 2025-05-21 13:52:35 +02:00
zynq kernel: filter out compiler opts from config 2024-11-17 14:55:16 +01:00
Makefile linux: fix missing default packages in profiles.json 2024-11-17 19:29:06 +01:00