From: sashiko-bot@kernel.org
To: "Markus Stockhausen" <markus.stockhausen@gmx.de>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH net-next v8 6/9] net: mdio: realtek-rtl9300: Add page tracking
Date: Thu, 30 Jul 2026 16:03:32 +0000 [thread overview]
Message-ID: <20260730160332.A0BF31F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260729160227.155613-7-markus.stockhausen@gmx.de>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Data race on `priv->page[port]` due to missing `priv->lock` in `otto_emdio_notify_phy_detach`.
--
--- Patch [6]: [PATCH net-next v8 6/9] net: mdio: realtek-rtl9300: Add page tracking ---
commit 05ca21acb226d57fd7de64847d2a32c8443b9dcd
Author: Markus Stockhausen <markus.stockhausen@gmx.de>
net: mdio: realtek-rtl9300: Add page tracking
This commit intercepts accesses to the Realtek page register (C22 reg 31)
to prevent interference with the hardware polling unit. It stores the target
page per-port and injects it into hardware commands. It also restricts C22
bus attachment to Realtek PHYs and resets the cached page upon detach.
> diff --git a/drivers/net/mdio/mdio-realtek-rtl9300.c b/drivers/net/mdio/mdio-realtek-rtl9300.c
> index aca0a9448bb0c..dc3661b2cd945 100644
> --- a/drivers/net/mdio/mdio-realtek-rtl9300.c
> +++ b/drivers/net/mdio/mdio-realtek-rtl9300.c
[ ... ]
> @@ -608,12 +632,17 @@ static void otto_emdio_notify_phy_detach(struct phy_device *phydev)
> {
> struct otto_emdio_priv *priv = otto_emdio_bus_to_priv(phydev->mdio.bus);
> int port = otto_emdio_phy_to_port(phydev->mdio.bus, phydev->mdio.addr);
> + struct otto_emdio_chan *chan = phydev->mdio.bus->priv;
> struct mii_bus *bus = phydev->mdio.bus;
> int ret;
>
> if (port < 0)
> return;
>
> + /* avoid wrong cached page for next attachment */
> + if (!priv->smi_bus_is_c45[chan->mdio_bus])
> + priv->page[port] = 0;
[Severity: Medium]
Does this write to priv->page[port] need to be protected by priv->lock?
Looking at otto_emdio_read_c22() and otto_emdio_write_c22() introduced
earlier in this patch, accesses to priv->page[port] are protected by taking
priv->lock. Here in otto_emdio_notify_phy_detach(), the assignment happens
without acquiring priv->lock.
Could this cause a data race if a concurrent MDIO read/write ioctl occurs
while the PHY is being detached?
> +
> ret = otto_emdio_set_port_polling(priv, port, false);
> if (ret)
> dev_err(bus->parent, "failed to disable polling for port %d\n", port);
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729160227.155613-1-markus.stockhausen@gmx.de?part=6
next prev parent reply other threads:[~2026-07-30 16:03 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-29 16:02 [PATCH net-next v8 0/9] net: mdio: realtek-rtl9300: Add RTL83xx support Markus Stockhausen
2026-07-29 16:02 ` [PATCH net-next v8 1/9] dt-bindings: net: realtek,rtl9301-mdio: Add RTL83xx series Markus Stockhausen
2026-07-29 16:02 ` [PATCH net-next v8 2/9] net: mdio: realtek-rtl9300: Add polling documentation Markus Stockhausen
2026-07-29 16:02 ` [PATCH net-next v8 3/9] net: phy: add (*notify_phy_attach/detach)() hooks to struct mii_bus Markus Stockhausen
2026-07-30 16:03 ` sashiko-bot
2026-07-29 16:02 ` [PATCH net-next v8 4/9] net: mdio: realtek-rtl9300: extend controller structure lifetime Markus Stockhausen
2026-07-30 16:03 ` sashiko-bot
2026-07-29 16:02 ` [PATCH net-next v8 5/9] net: mdio: realtek-rtl9300: Configure hardware polling during probing Markus Stockhausen
2026-07-30 16:03 ` sashiko-bot
2026-07-29 16:02 ` [PATCH net-next v8 6/9] net: mdio: realtek-rtl9300: Add page tracking Markus Stockhausen
2026-07-30 16:03 ` sashiko-bot [this message]
2026-07-29 16:02 ` [PATCH net-next v8 7/9] net: mdio: realtek-rtl9300: Increase MDIO timeout Markus Stockhausen
2026-07-29 16:02 ` [PATCH net-next v8 8/9] net: mdio: realtek-rtl9300: Add support for RTL838x Markus Stockhausen
2026-07-29 16:02 ` [PATCH net-next v8 9/9] net: mdio: realtek-rtl9300: Add support for RTL839x Markus Stockhausen
-- strict thread matches above, loose matches on Subject: below --
2026-07-27 19:15 [PATCH net-next v8 0/9] net: mdio: realtek-rtl9300: Add RTL83xx support Markus Stockhausen
2026-07-27 19:15 ` [PATCH net-next v8 6/9] net: mdio: realtek-rtl9300: Add page tracking Markus Stockhausen
2026-07-28 19:16 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260730160332.A0BF31F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=markus.stockhausen@gmx.de \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.