aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJitendra Kalsaria <jitendra.kalsaria@qlogic.com>2012-07-10 10:57:36 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-11 02:28:33 -0400
commitf5c4441cd80123c0f13fca75afc811c9c2b64add (patch)
tree746b0daf87c739e9881d95e42f4bfaed5e7955a5
parenta7db9ad1d48b502613f96054f21b107a8403237a (diff)
qlge: Fixed double pci free upon tx_ring->q allocation failure.
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_main.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
index 5cfba6aa1b92..bccbc4e2b31a 100644
--- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
@@ -2708,10 +2708,9 @@ static int ql_alloc_tx_resources(struct ql_adapter *qdev,
2708 &tx_ring->wq_base_dma); 2708 &tx_ring->wq_base_dma);
2709 2709
2710 if ((tx_ring->wq_base == NULL) || 2710 if ((tx_ring->wq_base == NULL) ||
2711 tx_ring->wq_base_dma & WQ_ADDR_ALIGN) { 2711 tx_ring->wq_base_dma & WQ_ADDR_ALIGN)
2712 netif_err(qdev, ifup, qdev->ndev, "tx_ring alloc failed.\n"); 2712 goto pci_alloc_err;
2713 return -ENOMEM; 2713
2714 }
2715 tx_ring->q = 2714 tx_ring->q =
2716 kmalloc(tx_ring->wq_len * sizeof(struct tx_ring_desc), GFP_KERNEL); 2715 kmalloc(tx_ring->wq_len * sizeof(struct tx_ring_desc), GFP_KERNEL);
2717 if (tx_ring->q == NULL) 2716 if (tx_ring->q == NULL)
@@ -2721,6 +2720,9 @@ static int ql_alloc_tx_resources(struct ql_adapter *qdev,
2721err: 2720err:
2722 pci_free_consistent(qdev->pdev, tx_ring->wq_size, 2721 pci_free_consistent(qdev->pdev, tx_ring->wq_size,
2723 tx_ring->wq_base, tx_ring->wq_base_dma); 2722 tx_ring->wq_base, tx_ring->wq_base_dma);
2723 tx_ring->wq_base = NULL;
2724pci_alloc_err:
2725 netif_err(qdev, ifup, qdev->ndev, "tx_ring alloc failed.\n");
2724 return -ENOMEM; 2726 return -ENOMEM;
2725} 2727}
2726 2728