aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKulikov Vasiliy <segooon@gmail.com>2010-07-09 20:03:18 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-12 23:21:42 -0400
commitb31fb86815153be3bc94e8ffb9dbf6e9d7694b2d (patch)
treea7bf4a424cc2aa2d620aaa4fb51c94a3b3b230e2 /drivers
parent60eb5fd11d1c6050c45a5aab141f42dd396e2a7f (diff)
tc35815: fix iomap leak
If tc35815_init_one() fails we must unmap mapped regions. Signed-off-by: Kulikov Vasiliy <segooon@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/tc35815.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index be08b75dbc15..99afa5c47bec 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -854,7 +854,7 @@ static int __devinit tc35815_init_one(struct pci_dev *pdev,
854 854
855 rc = register_netdev(dev); 855 rc = register_netdev(dev);
856 if (rc) 856 if (rc)
857 goto err_out; 857 goto err_out_iounmap;
858 858
859 memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); 859 memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
860 printk(KERN_INFO "%s: %s at 0x%lx, %pM, IRQ %d\n", 860 printk(KERN_INFO "%s: %s at 0x%lx, %pM, IRQ %d\n",
@@ -872,6 +872,8 @@ static int __devinit tc35815_init_one(struct pci_dev *pdev,
872 872
873err_out_unregister: 873err_out_unregister:
874 unregister_netdev(dev); 874 unregister_netdev(dev);
875err_out_iounmap:
876 pcim_iounmap_regions(pdev, 1 << 1);
875err_out: 877err_out:
876 free_netdev(dev); 878 free_netdev(dev);
877 return rc; 879 return rc;