be2net: reset queue address after freeing
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>
This commit is contained in:
parent
0ae57bb3df
commit
1cfafab965
1 changed files with 4 additions and 2 deletions
|
@ -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)
|
static void be_queue_free(struct be_adapter *adapter, struct be_queue_info *q)
|
||||||
{
|
{
|
||||||
struct be_dma_mem *mem = &q->dma_mem;
|
struct be_dma_mem *mem = &q->dma_mem;
|
||||||
if (mem->va)
|
if (mem->va) {
|
||||||
dma_free_coherent(&adapter->pdev->dev, mem->size, mem->va,
|
dma_free_coherent(&adapter->pdev->dev, mem->size, mem->va,
|
||||||
mem->dma);
|
mem->dma);
|
||||||
|
mem->va = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int be_queue_alloc(struct be_adapter *adapter, struct be_queue_info *q,
|
static int be_queue_alloc(struct be_adapter *adapter, struct be_queue_info *q,
|
||||||
|
@ -1660,7 +1662,7 @@ static int be_evt_queues_create(struct be_adapter *adapter)
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
return rc;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void be_mcc_queues_destroy(struct be_adapter *adapter)
|
static void be_mcc_queues_destroy(struct be_adapter *adapter)
|
||||||
|
|
Loading…
Reference in a new issue