if (bus_priv->extaddr >= 0)
addr = bus_priv->extaddr;
+
+ if (addr >= RTMDIO_MAX_PORT)
+ return -ENODEV;
err = (*bus_priv->read_mmd_phy)(addr, devnum, regnum, &val);
pr_debug("rd_MMD(adr=%d, dev=%d, reg=%d) = %d, err = %d\n",
if (bus_priv->extaddr >= 0)
addr = bus_priv->extaddr;
+
+ if (addr >= RTMDIO_MAX_PORT)
+ return -ENODEV;
if (addr >= 24 && addr <= 27 && eth_priv->id == 0x8380)
return rtl838x_read_sds_phy(addr, regnum);
if (bus_priv->extaddr >= 0)
addr = bus_priv->extaddr;
+ if (addr >= RTMDIO_MAX_PORT)
+ return -ENODEV;
+
if (regnum == RTMDIO_PAGE_SELECT && bus_priv->page[addr] != bus_priv->rawpage)
return bus_priv->page[addr];
if (bus_priv->extaddr >= 0)
addr = bus_priv->extaddr;
+ if (addr >= RTMDIO_MAX_PORT)
+ return -ENODEV;
+
err = (*bus_priv->write_mmd_phy)(addr, devnum, regnum, val);
pr_debug("wr_MMD(adr=%d, dev=%d, reg=%d, val=%d) err = %d\n",
addr, devnum, regnum, val, err);
if (bus_priv->extaddr >= 0)
addr = bus_priv->extaddr;
+
+ if (addr >= RTMDIO_MAX_PORT)
+ return -ENODEV;
+
page = bus_priv->page[addr];
if (addr >= 24 && addr <= 27 && eth_priv->id == 0x8380) {
if (bus_priv->extaddr >= 0)
addr = bus_priv->extaddr;
+
+ if (addr >= RTMDIO_MAX_PORT)
+ return -ENODEV;
+
page = bus_priv->page[addr];
if (regnum == RTMDIO_PAGE_SELECT)