diff --git a/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c b/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c index 0e4c31ae493..e3f59211580 100644 --- a/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c +++ b/target/linux/realtek/files-6.18/drivers/net/pcs/pcs-rtl-otto.c @@ -4143,6 +4143,12 @@ static struct mii_bus *rtpcs_probe_serdes_bus(struct rtpcs_ctrl *ctrl) return ERR_PTR(-ENODEV); } + if (!of_device_is_available(np)) { + dev_err(ctrl->dev, "SerDes mdio bus not usable"); + of_node_put(np); + return ERR_PTR(-ENODEV); + } + bus = of_mdio_find_bus(np); of_node_put(np); if (!bus) { @@ -4150,11 +4156,6 @@ static struct mii_bus *rtpcs_probe_serdes_bus(struct rtpcs_ctrl *ctrl) return ERR_PTR(-EPROBE_DEFER); } - if (!of_device_is_available(np)) { - dev_err(ctrl->dev, "SerDes mdio bus not usable"); - return ERR_PTR(-ENODEV); - } - return bus; }