Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de140b0d authored by Dan Carpenter's avatar Dan Carpenter Committed by David S. Miller
Browse files

dnet: fixup error handling in initialization



There were two problems here.  We returned success if dnet_mii_init()
failed and there was a release_mem_region() missing.

Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c5cb002f
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -854,7 +854,7 @@ static int __devinit dnet_probe(struct platform_device *pdev)
	dev = alloc_etherdev(sizeof(*bp));
	if (!dev) {
		dev_err(&pdev->dev, "etherdev alloc failed, aborting.\n");
		goto err_out;
		goto err_out_release_mem;
	}

	/* TODO: Actually, we have some interesting features... */
@@ -911,7 +911,8 @@ static int __devinit dnet_probe(struct platform_device *pdev)
	if (err)
		dev_warn(&pdev->dev, "Cannot register PHY board fixup.\n");

	if (dnet_mii_init(bp) != 0)
	err = dnet_mii_init(bp);
	if (err)
		goto err_out_unregister_netdev;

	dev_info(&pdev->dev, "Dave DNET at 0x%p (0x%08x) irq %d %pM\n",
@@ -936,6 +937,8 @@ static int __devinit dnet_probe(struct platform_device *pdev)
	iounmap(bp->regs);
err_out_free_dev:
	free_netdev(dev);
err_out_release_mem:
	release_mem_region(mem_base, mem_size);
err_out:
	return err;
}