Subject: Re: [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal

From: Andrew Lunn <[email-masked]>
Date: Sat, 1 Jun 2019 17:46:36 +0200

On Fri, May 31, 2019 at 09:22:16PM -0600, [email-masked] wrote:
> > On 31.05.2019 22:54, Andrew Lunn wrote:
> >>> It is possible that scheduled work started by the PHY driver is still
> >>> outstanding when phy_device_remove is called if the PHY was initially
> >>> started but never connected, and therefore phy_disconnect is never
> >>> called. phy_stop does not guarantee that the scheduled work is stopped
> >>> because it is called under rtnl_lock. This can cause an oops due to
> >>> use-after-free if the delayed work fires after freeing the PHY device.
> >>>
> > The patch itself at least shouldn't do any harm. However the justification
> > isn't fully convincing yet.
> > PHY drivers don't start any scheduled work. This queue is used by the
> > phylib state machine. phy_stop usually isn't called under rtnl_lock,
> > and it calls phy_stop_machine that cancels pending work.
> > Did you experience such an oops? Can you provide a call chain where
> > your described scenario could happen?
> 
> Upon further investigation, it appears that this change is no longer
> needed in the mainline. Previously (such as in 4.19 kernels as we are
> using),

Hi Robert

Please do all your testing on net-next. 4.19 is dead, in terms of
development. There is no point in developing and testing on it patches
intended for mainline.

     Andrew