Re: [PATCH v2 2/2] net-sysfs: Ensure begin/complete are called in speed_show() and duplex_show()

From: Andy Shevchenko
Date: Wed Feb 05 2020 - 04:06:46 EST


On Wed, Feb 05, 2020 at 04:16:16PM +0800, Kai-Heng Feng wrote:
> Device like igb gets runtime suspended when there's no link partner. We
> can't get correct speed under that state:
> $ cat /sys/class/net/enp3s0/speed
> 1000
>
> In addition to that, an error can also be spotted in dmesg:
> [ 385.991957] igb 0000:03:00.0 enp3s0: PCIe link lost
>
> It's because the igb device doesn't get runtime resumed before calling
> get_link_ksettings().
>
> So let's use a new helper to call begin() and complete() like what
> dev_ethtool() does, to runtime resume/suspend or power up/down the
> device properly.
>
> Once this fix is in place, igb can show the speed correctly without link
> partner:
> $ cat /sys/class/net/enp3s0/speed
> -1

What is the meaning of -1? Does it tells us "Hey, something is bad in hardware
I can't tell you the speed" or does it imply anything else?

Wouldn't be better to report 0?

Where is the documentation part of this ABI change?

--
With Best Regards,
Andy Shevchenko