aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/tundra
diff options
context:
space:
mode:
authorJulia Lawall <Julia.Lawall@lip6.fr>2012-01-11 18:55:04 -0500
committerDavid S. Miller <davem@davemloft.net>2012-01-12 23:05:28 -0500
commit20d4369b6892159895d6136946e692eaf29e8413 (patch)
treecd23450e46a9ec31c794c39126049a5d2b2ee988 /drivers/net/ethernet/tundra
parent83636580ad99cffd85b07e75da7ad45ada0fd530 (diff)
drivers/net/ethernet/tundra/tsi108_eth.c: add missing iounmap
Add missing iounmap in error handling code, in a case where the function already preforms iounmap on some other execution path. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e; statement S,S1; int ret; @@ e = \(ioremap\|ioremap_nocache\)(...) ... when != iounmap(e) if (<+...e...+>) S ... when any when != iounmap(e) *if (...) { ... when != iounmap(e) return ...; } ... when any iounmap(e); // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/tundra')
-rw-r--r--drivers/net/ethernet/tundra/tsi108_eth.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/tundra/tsi108_eth.c b/drivers/net/ethernet/tundra/tsi108_eth.c
index a9ce01bafd2..164fb775d7b 100644
--- a/drivers/net/ethernet/tundra/tsi108_eth.c
+++ b/drivers/net/ethernet/tundra/tsi108_eth.c
@@ -1604,7 +1604,7 @@ tsi108_init_one(struct platform_device *pdev)
1604 data->phyregs = ioremap(einfo->phyregs, 0x400); 1604 data->phyregs = ioremap(einfo->phyregs, 0x400);
1605 if (NULL == data->phyregs) { 1605 if (NULL == data->phyregs) {
1606 err = -ENOMEM; 1606 err = -ENOMEM;
1607 goto regs_fail; 1607 goto phyregs_fail;
1608 } 1608 }
1609/* MII setup */ 1609/* MII setup */
1610 data->mii_if.dev = dev; 1610 data->mii_if.dev = dev;
@@ -1663,9 +1663,11 @@ tsi108_init_one(struct platform_device *pdev)
1663 return 0; 1663 return 0;
1664 1664
1665register_fail: 1665register_fail:
1666 iounmap(data->regs);
1667 iounmap(data->phyregs); 1666 iounmap(data->phyregs);
1668 1667
1668phyregs_fail:
1669 iounmap(data->regs);
1670
1669regs_fail: 1671regs_fail:
1670 free_netdev(dev); 1672 free_netdev(dev);
1671 return err; 1673 return err;