On 10/28/2024 9:00 AM, Joe Damato wrote: > > I see, so it looks like there is: > - resume > - runtime_resume > > The bug I am reintroducing is runtime_resume already holding RTNL > before my added call to rtnl_lock. > > OK. > > Does resume also hold rtnl before the driver's igc_resume is called? > I am asking because I don't know much about how PM works. > > If resume does not hold RTNL (but runtime resume does, as the bug > you pointed out shows), it seems like a wrapper can be added to tell > the code whether rtnl should be held or not based on which resume is > happening. > > Does anyone know if: resume (not runtime_resume) already holds RTNL? > I'll try to take a look and see, but I am not very familiar with PM. I believe the resume doesn't hold RTNL, as its part of the core device code, which is not networking specific. It shouldn't be acquiring RTNL since that is a network specific lock. I believe the code you posted as v5 should resolve this, and makes sense to me. Thanks for digging into this :) -Jake