Commit ac7198bb authored by Andy Fleming's avatar Andy Fleming Committed by Jeff Garzik

gianfar: free/iounmap memory after an error in mii bus initialization

Recent changes to MII bus initialization code added exit points which
didn't free or iounmap the bus before returning.

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=11372.
Signed-off-by: default avatarAndy Fleming <afleming@freescale.com>
Reported-by: default avatarDaniel Marjamki <danielm77@spray.se>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent fbb80230
...@@ -211,19 +211,21 @@ static int gfar_mdio_probe(struct device *dev) ...@@ -211,19 +211,21 @@ static int gfar_mdio_probe(struct device *dev)
gfar_write(&enet_regs->tbipa, 0); gfar_write(&enet_regs->tbipa, 0);
for (i = PHY_MAX_ADDR; i > 0; i--) { for (i = PHY_MAX_ADDR; i > 0; i--) {
u32 phy_id; u32 phy_id;
int r;
r = get_phy_id(new_bus, i, &phy_id); err = get_phy_id(new_bus, i, &phy_id);
if (r) if (err)
return r; goto bus_register_fail;
if (phy_id == 0xffffffff) if (phy_id == 0xffffffff)
break; break;
} }
/* The bus is full. We don't support using 31 PHYs, sorry */ /* The bus is full. We don't support using 31 PHYs, sorry */
if (i == 0) if (i == 0) {
return -EBUSY; err = -EBUSY;
goto bus_register_fail;
}
gfar_write(&enet_regs->tbipa, i); gfar_write(&enet_regs->tbipa, i);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment