On 1/30/2021 08:22, Jakub Kicinski wrote:
On Thu, 28 Jan 2021 13:38:48 -0800 Tony Nguyen wrote:
From: Kai-Heng Feng <kai.heng.f...@canonical.com>
Similar to commit 165ae7a8feb5 ("igb: Report speed and duplex as unknown
when device is runtime suspended"), if we try to read speed and duplex
sysfs while the device is runtime suspended, igc will complain and
stops working:
The more generic approach will be wrap get_link_ksettings() with begin()
and complete() callbacks, and calls runtime resume and runtime suspend
routine respectively. However, igc is like igb, runtime resume routine
uses rtnl_lock() which upper ethtool layer also uses.
So to prevent a deadlock on rtnl, take a different approach, use
pm_runtime_suspended() to avoid reading register while device is runtime
suspended.
Is someone working on the full fix to how PM operates?
There is another rd32(IGC_STATUS) in this file which I don't think
is protected either.
Hello Jakub,
What is another rd32(IGC_STATUS) you meant? in igc_ethtool_get_regs?
While the device in D3 state there is no configuration space registers
access.
sasha