diff --git a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c index 2387b91994..e846c00b60 100644 --- a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c +++ b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c @@ -504,6 +504,10 @@ static int rtmdio_read(struct mii_bus *bus, int addr, int regnum) if (addr >= ctrl->cfg->cpu_port) return -ENODEV; + /* prevent WARN_ONCE() during scan */ + if (ctrl->smi_bus[addr] >=0 && ctrl->smi_bus_isc45[ctrl->smi_bus[addr]] && regnum == 2) + return -EIO; + if (regnum == RTMDIO_PAGE_SELECT && ctrl->page[addr] != ctrl->cfg->raw_page) return ctrl->page[addr];