--- zzzz-none-000/linux-4.9.231/drivers/net/phy/phy_device.c 2020-07-22 07:10:54.000000000 +0000 +++ falcon-5590-729/linux-4.9.231/drivers/net/phy/phy_device.c 2022-03-30 12:03:34.000000000 +0000 @@ -533,6 +533,11 @@ if ((phy_id & 0x1fffffff) == 0x1fffffff) return ERR_PTR(-ENODEV); +#if IS_ENABLED(CONFIG_PHY_ID0_JZ_66791_PANIC) + if (!phy_id) + panic("JZ-66791: mdio bus lockup"); +#endif + return phy_device_create(bus, addr, phy_id, is_c45, &c45_ids); } EXPORT_SYMBOL(get_phy_device); @@ -1009,6 +1014,9 @@ struct mii_bus *bus; int i; + if (phydev->drv && phydev->drv->detach) + phydev->drv->detach(phydev); + phydev->attached_dev->phydev = NULL; phydev->attached_dev = NULL; phy_suspend(phydev);