Messages in this thread |  | | From | Carlo Szelinsky <> | | Subject | Re: [PATCH net-next v2 3/3] net: mdio: treat PSE EPROBE_DEFER as non-fatal during PHY registration | | Date | Sun, 5 Apr 2026 20:57:30 +0200 |
| |
Hi Andrew,
So I went and looked at whether we can just let EPROBE_DEFER do its thing here, like you suggested.
From what I can tell, the issue is where it happens. fwnode_mdiobus_register_phy() gets called during the MDIO bus scan in __of_mdiobus_parse_phys(), and if any PHY returns -EPROBE_DEFER there, the whole scan bails out - none of the PHYs on that bus get registered. So you'd lose all networking on that bus just because one PHY's PSE controller isn't ready yet.
I also dug into the timing question you raised. Correct me if I'm wrong, but from what I see the deferred probe timeout is 10s and regulator_late_cleanup fires at 30s, so the ordering would actually work out - the consumer would get to claim the regulator before cleanup kills it. It's more the bus level collateral damage that seemed like the real problem to me.
That's basically why I ended up treating EPROBE_DEFER as non-fatal for PSE during PHY registration and doing lazy resolution instead. The admin_state_synced flag then covers the window between PSE controller probe and whenever the lazy resolution actually happens.
But I might be looking at this the wrong way - would you rather we defer the whole bus and accept that trade-off? Or does the lazy approach seem reasonable for this case? Happy to hear if you have a different idea entirely.
Cheers, Carlo
|  |