diff options
Diffstat (limited to 'drivers/net/dnet.c')
| -rw-r--r-- | drivers/net/dnet.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/dnet.c b/drivers/net/dnet.c index 8b0f50bbf3e..7c075756611 100644 --- a/drivers/net/dnet.c +++ b/drivers/net/dnet.c @@ -797,7 +797,7 @@ static int dnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)  	if (!phydev)  		return -ENODEV; -	return phy_mii_ioctl(phydev, if_mii(rq), cmd); +	return phy_mii_ioctl(phydev, rq, cmd);  }  static void dnet_get_drvinfo(struct net_device *dev, @@ -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 @@ err_out_iounmap:  	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;  }  |