On 28.12.2018 22:02, David Miller wrote: > From: Heiner Kallweit <hkallwe...@gmail.com> > Date: Mon, 24 Dec 2018 12:21:12 +0100 > >> phy_device_create() uses request_module() to load the PHY driver module >> based on the PHY ID of the device. There is some timing issue which >> sometimes prevents the PHY driver to bind to the device. In such cases >> the genphy driver is used what can cause problems if genphy isn't >> compatible with the respective PHY. >> It turned out that the first fix can fix the issue in some but not all >> cases. Moving the call to device_initialize() before the call to >> request_module() was reported to fix the issue. >> I can't explain where the root cause of the issue is and why this fix >> works. AFAICS device_initialize() just initializes the device struct >> w/o doing anything that could interfere with e.g. bus_add_driver(). >> This patch removes the first preliminary fix attempt. >> >> Reference: >> https://bugzilla.redhat.com/show_bug.cgi?id=1650984 >> >> Fixes: c85ddecae6e5 ("net: phy: add workaround for issue where PHY driver >> doesn't bind to the device") >> Tested-by: Norbert Jurkeit <norbert.jurk...@web.de> >> Tested-by: Frank Crawford <fr...@crawford.emu.id.au> >> Signed-off-by: Heiner Kallweit <hkallwe...@gmail.com> > > I can't see any way this can make a difference. I'm really stumped > and even if it did fix all of the issues people are seeing I wouldn't > want to apply this patch. > > We need to know why, and put the why into the commit log message. > > Thanks. > IIRC I sent a mail to you already asking not to apply the patch because again I had users complaining that the fix doesn't work for them. Root cause seems to be a tricky race in the drive base core, therefore I included Greg and Rafael. Due to this race even small code changes which doesn't make sense from a functional perspective help for few users.
I can't reproduce the issue on my systems, therefore I requested more debug info from requested users. Once I have more input I'll go on with the root cause analysis.