RE: [PATCH] igb: Report speed and duplex as unknown when device is runtime suspended

From: Kirsher, Jeffrey T
Date: Mon May 04 2020 - 16:28:06 EST


> -----Original Message-----
> From: David Miller <davem@xxxxxxxxxxxxx>
> Sent: Monday, May 4, 2020 11:21
> To: kai.heng.feng@xxxxxxxxxxxxx
> Cc: Kirsher, Jeffrey T <jeffrey.t.kirsher@xxxxxxxxx>; intel-wired-
> lan@xxxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] igb: Report speed and duplex as unknown when device is
> runtime suspended
>
> From: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
> Date: Tue, 5 May 2020 01:32:18 +0800
>
> > igb device 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
> >
> > Since device can only be runtime suspended when there's no link
> > partner, we can directly report the speed and duplex as unknown.
> >
> > The more generic approach will be wrap get_link_ksettings() with
> > begin() and complete() callbacks. However, for this particular issue,
> > begin() calls igb_runtime_resume() , which tries to rtnl_lock() while
> > the lock is already hold by upper ethtool layer.
> >
> > So let's take this approach until the igb_runtime_resume() no longer
> > needs to hold rtnl_lock.
> >
> > Suggested-by: Alexander Duyck <alexander.duyck@xxxxxxxxx>
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
>
> I'm assuming I will get this from upstream via Jeff K.
[Kirsher, Jeffrey T]

Yep, I will be picking this up once Alex's last questions/concerns are addressed.