Re: [PATCH net-next] net: mdio: aspeed: add dummy read to avoid read-after-write issue

From: Andrew Lunn

Date: Fri Dec 05 2025 - 08:52:38 EST


On Fri, Dec 05, 2025 at 09:37:22AM +0800, Jacky Chou wrote:
> The Aspeed MDIO controller may return incorrect data when a read operation
> follows immediately after a write. Due to a controller bug, the subsequent
> read can latch stale data, causing the polling logic to terminate earlier
> than expected.
>
> To work around this hardware issue, insert a dummy read after each write
> operation. This ensures that the next actual read returns the correct
> data and prevents premature polling exit.
>
> This workaround has been verified to stabilize MDIO transactions on
> affected Aspeed platforms.
>
> Signed-off-by: Jacky Chou <jacky_chou@xxxxxxxxxxxxxx>

This seems like a bug fix. Please add a Fixes: tag, for base it on
net, not net-next.

> ---
> drivers/net/mdio/mdio-aspeed.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c
> index e55be6dc9ae7..00e61b922876 100644
> --- a/drivers/net/mdio/mdio-aspeed.c
> +++ b/drivers/net/mdio/mdio-aspeed.c
> @@ -62,6 +62,12 @@ static int aspeed_mdio_op(struct mii_bus *bus, u8 st, u8 op, u8 phyad, u8 regad,
> | FIELD_PREP(ASPEED_MDIO_DATA_MIIRDATA, data);
>
> iowrite32(ctrl, ctx->base + ASPEED_MDIO_CTRL);
> + /* Workaround for read-after-write issue.

Blank line before the comment please.

Andrew

---
pw-bot: cr