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.