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: Andy Fleming <afleming@freescale.com> Reported-by: Daniel Marjamki <danielm77@spray.se> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
fbb80230bf
commit
ac7198bb12
|
@ -211,19 +211,21 @@ static int gfar_mdio_probe(struct device *dev)
|
|||
gfar_write(&enet_regs->tbipa, 0);
|
||||
for (i = PHY_MAX_ADDR; i > 0; i--) {
|
||||
u32 phy_id;
|
||||
int r;
|
||||
|
||||
r = get_phy_id(new_bus, i, &phy_id);
|
||||
if (r)
|
||||
return r;
|
||||
err = get_phy_id(new_bus, i, &phy_id);
|
||||
if (err)
|
||||
goto bus_register_fail;
|
||||
|
||||
if (phy_id == 0xffffffff)
|
||||
break;
|
||||
}
|
||||
|
||||
/* The bus is full. We don't support using 31 PHYs, sorry */
|
||||
if (i == 0)
|
||||
return -EBUSY;
|
||||
if (i == 0) {
|
||||
err = -EBUSY;
|
||||
|
||||
goto bus_register_fail;
|
||||
}
|
||||
|
||||
gfar_write(&enet_regs->tbipa, i);
|
||||
|
||||
|
|
Loading…
Reference in New Issue