[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1221773874-3273-1-git-send-email-afleming@freescale.com>
Date: Thu, 18 Sep 2008 16:37:54 -0500
From: Andy Fleming <afleming@...escale.com>
To: jeff@...zik.org
Cc: netdev@...r.kernel.org, danielm77@...ay.se,
akpm@...ux-foundation.org, Andy Fleming <afleming@...escale.com>
Subject: [PATCH] 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.
This was reported as bug #11372
Signed-off-by: Andy Fleming <afleming@...escale.com>
---
drivers/net/gianfar_mii.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/gianfar_mii.c b/drivers/net/gianfar_mii.c
index ebcfb27..4804ec1 100644
--- a/drivers/net/gianfar_mii.c
+++ b/drivers/net/gianfar_mii.c
@@ -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);
--
1.5.4.GIT
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists