On Wed, 24 May 2023 17:17:21 +0800 Jiawen Wu wrote: > + ret = devm_mdiobus_register(&pdev->dev, mii_bus); > + if (ret) > + return ret; > + > + mdiodev = mdio_device_create(mii_bus, 0); > + if (IS_ERR(mdiodev)) > + return PTR_ERR(mdiodev); > + > + xpcs = xpcs_create(mdiodev, PHY_INTERFACE_MODE_10GBASER); > + if (IS_ERR(xpcs)) { > + mdio_device_free(mdiodev); > + return PTR_ERR(xpcs); > + } How does the mdiodev get destroyed in case of success? Seems like either freeing it in case of xpcs error is unnecessary or it needs to also be freed when xpcs is destroyed?