qcacmn: Fix link descriptor pool cleanup
Set link descriptor memory address to NULL after freeing to ensure it is not freed again. This is seen with soc_detach called during attach failures. Change-Id: I7338cb8c64fcb652c95f42bcb9e998a6f043cecf CRs-Fixed: 2160703
This commit is contained in:

committed by
snandini

parent
1df9464a4d
commit
b71ad04168
@@ -1353,6 +1353,7 @@ fail:
|
|||||||
soc->wbm_idle_scatter_buf_size,
|
soc->wbm_idle_scatter_buf_size,
|
||||||
soc->wbm_idle_scatter_buf_base_vaddr[i],
|
soc->wbm_idle_scatter_buf_base_vaddr[i],
|
||||||
soc->wbm_idle_scatter_buf_base_paddr[i], 0);
|
soc->wbm_idle_scatter_buf_base_paddr[i], 0);
|
||||||
|
soc->wbm_idle_scatter_buf_base_vaddr[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1363,6 +1364,7 @@ fail:
|
|||||||
soc->link_desc_banks[i].base_vaddr_unaligned,
|
soc->link_desc_banks[i].base_vaddr_unaligned,
|
||||||
soc->link_desc_banks[i].base_paddr_unaligned,
|
soc->link_desc_banks[i].base_paddr_unaligned,
|
||||||
0);
|
0);
|
||||||
|
soc->link_desc_banks[i].base_vaddr_unaligned = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -1386,6 +1388,7 @@ static void dp_hw_link_desc_pool_cleanup(struct dp_soc *soc)
|
|||||||
soc->wbm_idle_scatter_buf_size,
|
soc->wbm_idle_scatter_buf_size,
|
||||||
soc->wbm_idle_scatter_buf_base_vaddr[i],
|
soc->wbm_idle_scatter_buf_base_vaddr[i],
|
||||||
soc->wbm_idle_scatter_buf_base_paddr[i], 0);
|
soc->wbm_idle_scatter_buf_base_paddr[i], 0);
|
||||||
|
soc->wbm_idle_scatter_buf_base_vaddr[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1396,6 +1399,7 @@ static void dp_hw_link_desc_pool_cleanup(struct dp_soc *soc)
|
|||||||
soc->link_desc_banks[i].base_vaddr_unaligned,
|
soc->link_desc_banks[i].base_vaddr_unaligned,
|
||||||
soc->link_desc_banks[i].base_paddr_unaligned,
|
soc->link_desc_banks[i].base_paddr_unaligned,
|
||||||
0);
|
0);
|
||||||
|
soc->link_desc_banks[i].base_vaddr_unaligned = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -985,6 +985,7 @@ fail:
|
|||||||
dp_pdev->link_desc_banks[i].size,
|
dp_pdev->link_desc_banks[i].size,
|
||||||
dp_pdev->link_desc_banks[i].base_vaddr_unaligned,
|
dp_pdev->link_desc_banks[i].base_vaddr_unaligned,
|
||||||
dp_pdev->link_desc_banks[i].base_paddr_unaligned, 0);
|
dp_pdev->link_desc_banks[i].base_paddr_unaligned, 0);
|
||||||
|
dp_pdev->link_desc_banks[i].base_vaddr_unaligned = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
@@ -1004,6 +1005,7 @@ static void dp_mon_link_desc_pool_cleanup(struct dp_soc *soc, uint32_t mac_id)
|
|||||||
dp_pdev->link_desc_banks[i].size,
|
dp_pdev->link_desc_banks[i].size,
|
||||||
dp_pdev->link_desc_banks[i].base_vaddr_unaligned,
|
dp_pdev->link_desc_banks[i].base_vaddr_unaligned,
|
||||||
dp_pdev->link_desc_banks[i].base_paddr_unaligned, 0);
|
dp_pdev->link_desc_banks[i].base_paddr_unaligned, 0);
|
||||||
|
dp_pdev->link_desc_banks[i].base_vaddr_unaligned = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user