45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
From: Sathya Perla <sathya.perla@emulex.com>
|
|
Date: Thu, 23 Feb 2012 18:50:15 +0000
|
|
Subject: [PATCH 35/58] be2net: reset queue address after freeing
|
|
|
|
commit 1cfafab965198bc0d9cb794af5065d0797969727 upstream.
|
|
|
|
This will prevent double free in some cases where be_clear() is called
|
|
for cleanup when be_setup() fails half-way.
|
|
|
|
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/emulex/benet/be_main.c | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
index dce97dc..c1b9cdf 100644
|
|
--- a/drivers/net/ethernet/emulex/benet/be_main.c
|
|
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
@@ -127,9 +127,11 @@ static inline bool be_is_mc(struct be_adapter *adapter) {
|
|
static void be_queue_free(struct be_adapter *adapter, struct be_queue_info *q)
|
|
{
|
|
struct be_dma_mem *mem = &q->dma_mem;
|
|
- if (mem->va)
|
|
+ if (mem->va) {
|
|
dma_free_coherent(&adapter->pdev->dev, mem->size, mem->va,
|
|
mem->dma);
|
|
+ mem->va = NULL;
|
|
+ }
|
|
}
|
|
|
|
static int be_queue_alloc(struct be_adapter *adapter, struct be_queue_info *q,
|
|
@@ -1652,7 +1654,7 @@ static int be_evt_queues_create(struct be_adapter *adapter)
|
|
if (rc)
|
|
return rc;
|
|
}
|
|
- return rc;
|
|
+ return 0;
|
|
}
|
|
|
|
static void be_mcc_queues_destroy(struct be_adapter *adapter)
|
|
--
|
|
1.7.10
|
|
|