From: sashiko-bot@kernel.org
To: "Markus Stockhausen" <markus.stockhausen@gmx.de>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH net-next v14 10/13] net: mdio: realtek-rtl9300: Open up C22 and C45 space in parallel
Date: Tue, 18 Aug 2026 16:27:28 +0000 [thread overview]
Message-ID: <20260818162728.DA1141F00A3E@smtp.kernel.org> (raw)
In-Reply-To: <20260817162632.1208891-11-markus.stockhausen@gmx.de>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] The MDIO read/write functions return `-ENOENT` for unmapped PHY addresses and `-ENXIO` on hardware command failure, which improperly aborts the entire MDIO bus registration.
--
--- Patch [10]: [PATCH net-next v14 10/13] net: mdio: realtek-rtl9300: Open up C22 and C45 space in parallel ---
commit c559542aa88ff474f3367ec89a5df414f866718f
Author: Markus Stockhausen <markus.stockhausen@gmx.de>
net: mdio: realtek-rtl9300: Open up C22 and C45 space in parallel
This commit enables parallel C22 and C45 access for the Realtek RTL9300 MDIO
driver. It does this by unconditionally assigning both the C22 and C45 read
and write bus operations during probe.
> diff --git a/drivers/net/mdio/mdio-realtek-rtl9300.c b/drivers/net/mdio/mdio-realtek-rtl9300.c
> index f3777c61705aa..c417a2e3d613d 100644
> --- a/drivers/net/mdio/mdio-realtek-rtl9300.c
> +++ b/drivers/net/mdio/mdio-realtek-rtl9300.c
[ ... ]
> @@ -683,13 +683,10 @@ static int otto_emdio_probe_one(struct device *dev, struct otto_emdio_priv *priv
> return -ENOMEM;
>
> bus->name = "Realtek Switch MDIO Bus";
> - if (priv->smi_bus_is_c45[mdio_bus]) {
> - bus->read_c45 = otto_emdio_read_c45;
> - bus->write_c45 = otto_emdio_write_c45;
> - } else {
> - bus->read = otto_emdio_read_c22;
> - bus->write = otto_emdio_write_c22;
> - }
> + bus->read_c45 = otto_emdio_read_c45;
> + bus->write_c45 = otto_emdio_write_c45;
> + bus->read = otto_emdio_read_c22;
> + bus->write = otto_emdio_write_c22;
[Severity: High]
This is a pre-existing issue, but does the MDIO read/write implementation
improperly abort the entire MDIO bus registration when encountering unmapped
PHY addresses or hardware command failures?
Looking at otto_emdio_phy_to_port(), if a PHY address isn't mapped, it returns
-ENOENT:
drivers/net/mdio/mdio-realtek-rtl9300.c:otto_emdio_phy_to_port() {
...
for_each_set_bit(i, priv->valid_ports, priv->info->num_ports)
if (priv->smi_bus[i] == chan->mdio_bus &&
priv->smi_addr[i] == phy_id)
return i;
return -ENOENT;
}
Similarly, if a hardware timeout occurs, otto_emdio_run_cmd() returns -ENXIO:
drivers/net/mdio/mdio-realtek-rtl9300.c:otto_emdio_run_cmd() {
...
return cmdstate & info->cmd_fail ? -ENXIO : 0;
}
When the generic PHY subsystem (like get_phy_c22_id) encounters these
non-standard errors during mdiobus_read(), it transforms them into a fatal
-EIO. Because -EIO is not -ENODEV, __of_mdiobus_register() will immediately
unregister the bus and exit, preventing the switch and all its network ports
from initializing.
Could returning -ENODEV instead be safer so that missing PHYs are simply
skipped instead of failing the entire bus?
> bus->parent = dev;
> bus->notify_phy_attach = otto_emdio_notify_phy_attach;
> bus->notify_phy_detach = otto_emdio_notify_phy_detach;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260817162632.1208891-1-markus.stockhausen@gmx.de?part=10
next prev parent reply other threads:[~2026-08-18 16:27 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-17 16:26 [PATCH net-next v14 00/13] net: mdio: realtek-rtl9300: Add RTL83xx support Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 01/13] dt-bindings: net: realtek,rtl9301-mdio: Add RTL83xx series Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 02/13] net: mdio: realtek-rtl9300: Add polling documentation Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 03/13] net: mdio: realtek-rtl9300: deny C45 over C22 access Markus Stockhausen
2026-08-18 16:27 ` sashiko-bot
2026-08-17 16:26 ` [PATCH net-next v14 04/13] net: phy: add phy_detach_internal() helper Markus Stockhausen
2026-08-17 16:41 ` Andrew Lunn
2026-08-18 16:27 ` sashiko-bot
2026-08-17 16:26 ` [PATCH net-next v14 05/13] net: phy: add (*notify_phy_attach/detach)() hooks to struct mii_bus Markus Stockhausen
2026-08-17 16:46 ` Andrew Lunn
2026-08-17 16:26 ` [PATCH net-next v14 06/13] net: mdio: realtek-rtl9300: suppress sysfs bind/unbind attributes Markus Stockhausen
2026-08-17 16:47 ` Andrew Lunn
2026-08-18 16:27 ` sashiko-bot
2026-08-17 16:26 ` [PATCH net-next v14 07/13] net: mdio: realtek-rtl9300: Configure hardware polling during probing Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 08/13] net: mdio: realtek-rtl9300: Add page tracking Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 09/13] net: mdio: realtek-rtl9300: Increase MDIO timeout Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 10/13] net: mdio: realtek-rtl9300: Open up C22 and C45 space in parallel Markus Stockhausen
2026-08-17 17:03 ` Andrew Lunn
2026-08-17 17:29 ` AW: " Markus Stockhausen
2026-08-17 19:35 ` Andrew Lunn
2026-08-17 20:05 ` AW: " Markus Stockhausen
2026-08-17 20:10 ` Andrew Lunn
2026-08-17 20:25 ` AW: " Markus Stockhausen
2026-08-17 20:31 ` Andrew Lunn
2026-08-18 17:44 ` AW: " Markus Stockhausen
2026-08-18 19:32 ` Andrew Lunn
2026-08-18 16:27 ` sashiko-bot [this message]
2026-08-17 16:26 ` [PATCH net-next v14 11/13] net: mdio: realtek-rtl9300: Add support for RTL838x Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 12/13] net: mdio: realtek-rtl9300: Add support for RTL839x Markus Stockhausen
2026-08-17 16:26 ` [PATCH net-next v14 13/13] net: mdio: realtek-rtl9300: reword Kconfig and module description Markus Stockhausen
2026-08-17 17:25 ` [PATCH net-next v14 00/13] net: mdio: realtek-rtl9300: Add RTL83xx support Jakub Kicinski
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=20260818162728.DA1141F00A3E@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.