mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-13 16:40:22 +00:00
powerpc/82xx: kmalloc failure ignored in ep8248e_mdio_probe()
Prevent NULL dereference if kmalloc() fails. Also clean up if of_mdiobus_register() returns an error. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
cb5485a0b9
commit
58459a4e19
@ -132,12 +132,25 @@ static int __devinit ep8248e_mdio_probe(struct of_device *ofdev,
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
|
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->name = "ep8248e-mdio-bitbang";
|
||||||
bus->parent = &ofdev->dev;
|
bus->parent = &ofdev->dev;
|
||||||
snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start);
|
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)
|
static int ep8248e_mdio_remove(struct of_device *ofdev)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user