From: Dimitri Fedrau <dima.fedrau@gmail.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>,
"Gregor Herburger" <gregor.herburger@ew.tq-group.com>,
"Stefan Eichenberger" <eichest@gmail.com>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v2 2/2] net: phy: marvell-88q2xxx: Prevent hwmon access with asserted reset
Date: Thu, 20 Feb 2025 22:05:37 +0100 [thread overview]
Message-ID: <20250220210537.GA3469@debian> (raw)
In-Reply-To: <Z7dKRrXIUCaVeRfH@shell.armlinux.org.uk>
Am Thu, Feb 20, 2025 at 03:29:10PM +0000 schrieb Russell King (Oracle):
> On Thu, Feb 20, 2025 at 04:22:14PM +0100, Dimitri Fedrau wrote:
> > Hi Russell,
> >
> > Am Thu, Feb 20, 2025 at 09:36:49AM +0000 schrieb Russell King (Oracle):
> > > On Thu, Feb 20, 2025 at 09:11:12AM +0100, Dimitri Fedrau wrote:
> > > > If the PHYs reset is asserted it returns 0xffff for any read operation.
> > > > This might happen if the user admins down the interface and wants to read
> > > > the temperature. Prevent reading the temperature in this case and return
> > > > with an network is down error. Write operations are ignored by the device
> > > > when reset is asserted, still return a network is down error in this
> > > > case to make the user aware of the operation gone wrong.
> > >
> > > If we look at where mdio_device_reset() is called from:
> > >
> > > 1. mdio_device_register() -> mdiobus_register_device() asserts reset
> > > before adding the device to the device layer (which will then
> > > cause the driver to be searched for and bound.)
> > >
> > > 2. mdio_probe(), deasserts the reset signal before calling the MDIO
> > > driver's ->probe method, which will be phy_probe().
> > >
> > > 3. after a probe failure to re-assert the reset signal.
> > >
> > > 4. after ->remove has been called.
> > >
> >
> > There is also phy_device_reset that calls mdio_device_reset.
>
> Ok, thanks for pointing that out.
>
> > > That is the sum total. So, while the driver is bound to the device,
> > > phydev->mdio.reset_state is guaranteed to be zero.
> > >
> > > Therefore, is this patch fixing a real observed problem with the
> > > current driver?
> > >
> > Yes, when I admin up and afterwards down the network device then the PHYs
> > reset is asserted. In this case phy_detach is called which calls
> > phy_device_reset(phydev, 1), ...
>
> I'm still concerned that this solution is basically racy - the
> netdev can come up/down while hwmon is accessing the device. I'm
> also unconvinced that ENETDOWN is a good idea here.
>
Yes it is racy. A solution would be to set a flag or whatever in
mdio_device_reset right before changes to the reset line happens and
clear the flag right after the changes have been done. Add a function
that return the state of the flag.
Better go back to EIO ? At first I thought it was a good idea because
the user gets at least a hint what the cause of the error is...
> While I get the "describe the hardware" is there a real benefit to
> describing this?
>
I can't follow.
> What I'm wondering is whether manipulating the reset signal in this
> case provides more pain than gain.
>
It seems so. I wasn't really aware of it :-)
Best regards,
Dimitri Fedrau
next prev parent reply other threads:[~2025-02-20 21:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-20 8:11 [PATCH net-next v2 0/2] net: phy: marvell-88q2xxx: Enable temperature measurement in probe again Dimitri Fedrau
2025-02-20 8:11 ` [PATCH net-next v2 1/2] " Dimitri Fedrau
2025-02-20 8:11 ` [PATCH net-next v2 2/2] net: phy: marvell-88q2xxx: Prevent hwmon access with asserted reset Dimitri Fedrau
2025-02-20 9:36 ` Russell King (Oracle)
2025-02-20 15:22 ` Dimitri Fedrau
2025-02-20 15:29 ` Russell King (Oracle)
2025-02-20 21:05 ` Dimitri Fedrau [this message]
2025-02-20 9:19 ` [PATCH net-next v2 0/2] net: phy: marvell-88q2xxx: Enable temperature measurement in probe again Kory Maincent
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=20250220210537.GA3469@debian \
--to=dima.fedrau@gmail.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=eichest@gmail.com \
--cc=geert@linux-m68k.org \
--cc=gregor.herburger@ew.tq-group.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=niklas.soderlund+renesas@ragnatech.se \
--cc=pabeni@redhat.com \
/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.