[PATCH] starfire: free_irq() on error path of netdev_open()
authorAlexey Dobriyan <adobriyan@gmail.com>
Thu, 6 Oct 2005 22:05:23 +0000 (02:05 +0400)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 28 Oct 2005 20:16:59 +0000 (16:16 -0400)
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/starfire.c

index efdb179..38b2b0a 100644 (file)
@@ -1091,8 +1091,10 @@ static int netdev_open(struct net_device *dev)
                rx_ring_size = sizeof(struct starfire_rx_desc) * RX_RING_SIZE;
                np->queue_mem_size = tx_done_q_size + rx_done_q_size + tx_ring_size + rx_ring_size;
                np->queue_mem = pci_alloc_consistent(np->pci_dev, np->queue_mem_size, &np->queue_mem_dma);
-               if (np->queue_mem == 0)
+               if (np->queue_mem == NULL) {
+                       free_irq(dev->irq, dev);
                        return -ENOMEM;
+               }
 
                np->tx_done_q     = np->queue_mem;
                np->tx_done_q_dma = np->queue_mem_dma;