Re: [PATCH 2/2] net: ethernet: bcmgenet: use phy_ethtool_{get|set}_link_ksettings

From: Ben Hutchings
Date: Tue Jul 05 2016 - 17:40:25 EST


On Tue, 2016-07-05 at 14:15 -0700, Florian Fainelli wrote:
> On 07/05/2016 02:07 PM, Philippe Reynes wrote:
> > Hi Florian,
> >
> > On 05/07/16 06:30, Florian Fainelli wrote:
> > > Le 04/07/2016 16:03, David Miller a Ãcrit :
> > > > From: Philippe Reynes<tremyfr@xxxxxxxxx>
> > > > Date: Sun,ÂÂ3 Jul 2016 17:33:57 +0200
> > > >
> > > > > There are two generics functions phy_ethtool_{get|set}_link_ksettings,
> > > > > so we can use them instead of defining the same code in the driver.
> > > > >
> > > > > Signed-off-by: Philippe Reynes<tremyfr@xxxxxxxxx>
> > > >
> > > > Applied.
> > > >
> > >
> > > The transformation is not equivalent, we lost the checks on
> > > netif_running() in the process, and those are here for a reason, if the
> > > interface is down and therefore clock gated, MDIO accesses to the PHY
> > > will simply fail outright and cause bus errors.
> >
> > Oh, I see, I've missed this. Sorry for this mistake.
> > We should revert this path.
>
> Well, maybe better than that, actually put the check in the generic
> functions, because if the link is down, aka netif_running() returns
> false, link parameters cannot be reliably queried and they are invalid.

Either the hardware or the driver needs to remember:

- Is auto-negotiation enabled
- If so, which modes are advertised
- If not, which mode is forced

And it should still be possible to get or set that information when the
interface is down.

Ben.

--

Ben Hutchings
Life is what happens to you while you're busy making other plans.
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ- John
Lennon

Attachment: signature.asc
Description: This is a digitally signed message part