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<trem...@gmail.com> > > > > 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<trem...@gmail.com> > > > > > > > > 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
signature.asc
Description: This is a digitally signed message part