RE: [PATCH] net: stmmac: synchronize stmmac_open and stmmac_dvr_probe

From: Kweh, Hock Leong
Date: Tue Dec 27 2016 - 00:27:01 EST


> -----Original Message-----
> From: David Miller [mailto:davem@xxxxxxxxxxxxx]
> Sent: Tuesday, December 27, 2016 12:55 PM
> To: Kweh, Hock Leong <hock.leong.kweh@xxxxxxxxx>
> Cc: Joao.Pinto@xxxxxxxxxxxx; peppe.cavallaro@xxxxxx;
> seraphin.bonnaffe@xxxxxx; alexandre.torgue@xxxxxxxxx;
> manabian@xxxxxxxxx; niklas.cassel@xxxxxxxx; johan@xxxxxxxxxx;
> pavel@xxxxxx; Ong, Boon Leong <boon.leong.ong@xxxxxxxxx>;
> netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Voon, Weifeng
> <weifeng.voon@xxxxxxxxx>; lars.persson@xxxxxxxx
> Subject: Re: [PATCH] net: stmmac: synchronize stmmac_open and
> stmmac_dvr_probe
>
> From: "Kweh, Hock Leong" <hock.leong.kweh@xxxxxxxxx>
> Date: Tue, 27 Dec 2016 19:44:59 +0800
>
> > From: "Kweh, Hock Leong" <hock.leong.kweh@xxxxxxxxx>
> >
> > If kernel module stmmac driver being loaded after OS booted, there is a
> > race condition between stmmac_open() and stmmac_mdio_register(), which is
> > invoked inside stmmac_dvr_probe(), and the error is showed in dmesg log as
> > PHY not found and stmmac_open() failed:
> ...
> > The resolution used wait_for_completion_interruptible() to synchronize
> > stmmac_open() and stmmac_dvr_probe() to prevent the race condition
> > happening.
> >
> > Signed-off-by: Kweh, Hock Leong <hock.leong.kweh@xxxxxxxxx>
>
> The proper thing to do is to make sure register_netdevice() is not
> invoked until it is %100 safe to call stmmac_open().

Noted & thanks. Will look into it.

Regards,
Wilson