diff options
author | Denis Kirjanov <dkirjanov@kernel.org> | 2010-10-20 00:21:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-21 04:26:46 -0400 |
commit | e0e8ab596012d8c2147beb3c8b70d2d6ab90acda (patch) | |
tree | ba9b822ce3ad11cab6fa976032b272ab6104d9cc /drivers/net/ibmveth.c | |
parent | 88426f2acae0cf887446013db9eab776871610e7 (diff) |
ibmveth: Free irq on error path
Free irq on error path.
Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ibmveth.c')
-rw-r--r-- | drivers/net/ibmveth.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c index 2ae8336478b3..c454b45ca7ec 100644 --- a/drivers/net/ibmveth.c +++ b/drivers/net/ibmveth.c | |||
@@ -641,7 +641,7 @@ static int ibmveth_open(struct net_device *netdev) | |||
641 | if (!adapter->bounce_buffer) { | 641 | if (!adapter->bounce_buffer) { |
642 | netdev_err(netdev, "unable to allocate bounce buffer\n"); | 642 | netdev_err(netdev, "unable to allocate bounce buffer\n"); |
643 | rc = -ENOMEM; | 643 | rc = -ENOMEM; |
644 | goto err_out; | 644 | goto err_out_free_irq; |
645 | } | 645 | } |
646 | adapter->bounce_buffer_dma = | 646 | adapter->bounce_buffer_dma = |
647 | dma_map_single(&adapter->vdev->dev, adapter->bounce_buffer, | 647 | dma_map_single(&adapter->vdev->dev, adapter->bounce_buffer, |
@@ -649,7 +649,7 @@ static int ibmveth_open(struct net_device *netdev) | |||
649 | if (dma_mapping_error(dev, adapter->bounce_buffer_dma)) { | 649 | if (dma_mapping_error(dev, adapter->bounce_buffer_dma)) { |
650 | netdev_err(netdev, "unable to map bounce buffer\n"); | 650 | netdev_err(netdev, "unable to map bounce buffer\n"); |
651 | rc = -ENOMEM; | 651 | rc = -ENOMEM; |
652 | goto err_out; | 652 | goto err_out_free_irq; |
653 | } | 653 | } |
654 | 654 | ||
655 | netdev_dbg(netdev, "initial replenish cycle\n"); | 655 | netdev_dbg(netdev, "initial replenish cycle\n"); |
@@ -661,6 +661,8 @@ static int ibmveth_open(struct net_device *netdev) | |||
661 | 661 | ||
662 | return 0; | 662 | return 0; |
663 | 663 | ||
664 | err_out_free_irq: | ||
665 | free_irq(netdev->irq, netdev); | ||
664 | err_out: | 666 | err_out: |
665 | ibmveth_cleanup(adapter); | 667 | ibmveth_cleanup(adapter); |
666 | napi_disable(&adapter->napi); | 668 | napi_disable(&adapter->napi); |