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.