[PATCH net 0/3] net: dsa: mt7530: fix swallowed MDIO read errors
From: Daniel Golle
Date: Tue Jul 28 2026 - 00:52:40 EST
While working on a register access cleanup for the mt7530 driver, the
Sashiko AI reviewers flagged long-standing error handling gaps in the
driver's read paths [1].
The MDIO regmap backend truncates negative bus->read() errnos into u16
register halves and returns success, handing garbage data to callers
and to read-modify-write cycles which then write it back to the switch.
The ATC/VTCR command polls and the MT7531 indirect PHY polls consume
reads through a helper which returns 0 when the underlying read fails.
A failed bus transaction thus clears the polled busy bit and is
mistaken for command completion, defeats the subsequent
ATC_INVALID/VTCR_INVALID checks the same way, and lets the indirect
PHY access functions return garbage PHY register data.
Fix the backend to propagate bus->read() errors, and convert the
command and PHY access polls to regmap_read_poll_timeout(), which
terminates polling on read errors and propagates them.
The cleanup series depending on these fixes will be submitted to
net-next separately after the next net/net-next merger.
[1] https://lore.kernel.org/netdev/cover.1784481922.git.daniel@xxxxxxxxxxxxxx/
Daniel Golle (3):
net: dsa: mt7530: check bus->read() errors in the MDIO regmap backend
net: dsa: mt7530: error out on failed reads in ATC/VTCR command
polling
net: dsa: mt7530: error out on failed reads in MT7531 PHY polling
drivers/net/dsa/mt7530-mdio.c | 11 ++++-
drivers/net/dsa/mt7530.c | 86 ++++++++++++++++-------------------
2 files changed, 47 insertions(+), 50 deletions(-)
base-commit: a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05
--
2.55.0