diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-11-18 10:53:52 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-11-18 10:53:52 +0900 |
commit | 260af56271f79da0e37faa5a99b1786b221297e5 (patch) | |
tree | d76a2609f940b88083314d5f9131c73115bd4dcb /arch/powerpc/platforms/82xx/ep8248e.c | |
parent | 1dca899e95d27475c9036ce1cf857a72852b9c53 (diff) | |
parent | 648f15345add88a7eea724365fe1217a8d8a1e16 (diff) | |
download | op-kernel-dev-260af56271f79da0e37faa5a99b1786b221297e5.zip op-kernel-dev-260af56271f79da0e37faa5a99b1786b221297e5.tar.gz |
Merge branch 'sh/stable-updates'
Diffstat (limited to 'arch/powerpc/platforms/82xx/ep8248e.c')
-rw-r--r-- | arch/powerpc/platforms/82xx/ep8248e.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c index 51fcae4..f9aee18 100644 --- a/arch/powerpc/platforms/82xx/ep8248e.c +++ b/arch/powerpc/platforms/82xx/ep8248e.c @@ -132,12 +132,25 @@ static int __devinit ep8248e_mdio_probe(struct of_device *ofdev, return -ENOMEM; bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL); + if (bus->irq == NULL) { + ret = -ENOMEM; + goto err_free_bus; + } bus->name = "ep8248e-mdio-bitbang"; bus->parent = &ofdev->dev; snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start); - return of_mdiobus_register(bus, ofdev->node); + ret = of_mdiobus_register(bus, ofdev->node); + if (ret) + goto err_free_irq; + + return 0; +err_free_irq: + kfree(bus->irq); +err_free_bus: + free_mdio_bitbang(bus); + return ret; } static int ep8248e_mdio_remove(struct of_device *ofdev) |