From: Michael Karcher <deb...@mkarcher.dialup.fu-berlin.de>

The irq is request on netdev open time, so do not free it in probe
if something fails.
Also do not free the irq in remove, as it got already freed in close

Signed-off-by: Michael Karcher <ker...@mkarcher.dialup.fu-berlin.de>
Signed-off-by: Michael Schmitz <schmitz...@gmail.com>
---
 drivers/net/ethernet/8390/ax88796.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/8390/ax88796.c 
b/drivers/net/ethernet/8390/ax88796.c
index 544f3ba..6472473 100644
--- a/drivers/net/ethernet/8390/ax88796.c
+++ b/drivers/net/ethernet/8390/ax88796.c
@@ -802,7 +802,7 @@ static int ax_init_dev(struct net_device *dev)
 
        ret = register_netdev(dev);
        if (ret)
-               goto out_irq;
+               goto err_out;
 
        netdev_info(dev, "%dbit, irq %d, %lx, MAC: %pM\n",
                    ei_local->word16 ? 16 : 8, dev->irq, dev->base_addr,
@@ -810,9 +810,6 @@ static int ax_init_dev(struct net_device *dev)
 
        return 0;
 
- out_irq:
-       /* cleanup irq */
-       free_irq(dev->irq, dev);
  err_out:
        return ret;
 }
@@ -825,7 +822,6 @@ static int ax_remove(struct platform_device *pdev)
        struct resource *mem;
 
        unregister_netdev(dev);
-       free_irq(dev->irq, dev);
 
        iounmap(ei_local->mem);
        mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-- 
1.7.0.4

Reply via email to