qcacmn: Remove freed DP structures from minidump

Remove entries previously added to minidump during
data-path detach.

Change-Id: Ib69803e8ea58e5b4e0f045d3037730a5b6700c8d
This commit is contained in:
Karunakar Dasineni
2019-06-19 10:37:17 -07:00
committed by nshrivas
parent af64fd1868
commit a46da42b53
2 changed files with 29 additions and 16 deletions

View File

@@ -2091,8 +2091,11 @@ static int dp_hw_link_desc_pool_setup(struct dp_soc *soc)
FL("Link descriptor memory alloc failed")); FL("Link descriptor memory alloc failed"));
goto fail; goto fail;
} }
qdf_minidump_log((void *)(soc->link_desc_banks[i].base_vaddr), if (!dp_is_soc_reinit(soc)) {
soc->link_desc_banks[i].size, "link_desc_bank"); qdf_minidump_log(soc->link_desc_banks[i].base_vaddr,
soc->link_desc_banks[i].size,
"link_desc_bank");
}
} }
if (last_bank_size) { if (last_bank_size) {
@@ -2123,8 +2126,11 @@ static int dp_hw_link_desc_pool_setup(struct dp_soc *soc)
(unsigned long)( (unsigned long)(
soc->link_desc_banks[i].base_vaddr_unaligned)); soc->link_desc_banks[i].base_vaddr_unaligned));
qdf_minidump_log((void *)(soc->link_desc_banks[i].base_vaddr), if (!dp_is_soc_reinit(soc)) {
soc->link_desc_banks[i].size, "link_desc_bank"); qdf_minidump_log(soc->link_desc_banks[i].base_vaddr,
soc->link_desc_banks[i].size,
"link_desc_bank");
}
} }
@@ -2142,10 +2148,9 @@ static int dp_hw_link_desc_pool_setup(struct dp_soc *soc)
goto fail; goto fail;
} }
qdf_minidump_log( qdf_minidump_log(soc->wbm_idle_link_ring.base_vaddr_unaligned,
(void *)(soc->wbm_idle_link_ring.base_vaddr_unaligned), soc->wbm_idle_link_ring.alloc_size,
soc->wbm_idle_link_ring.alloc_size, "wbm_idle_link_ring");
"wbm_idle_link_ring");
hal_srng_access_start_unlocked(soc->hal_soc, hal_srng_access_start_unlocked(soc->hal_soc,
soc->wbm_idle_link_ring.hal_srng); soc->wbm_idle_link_ring.hal_srng);
@@ -2304,6 +2309,8 @@ static void dp_hw_link_desc_pool_cleanup(struct dp_soc *soc)
int i; int i;
if (soc->wbm_idle_link_ring.hal_srng) { if (soc->wbm_idle_link_ring.hal_srng) {
qdf_minidump_remove(
soc->wbm_idle_link_ring.base_vaddr_unaligned);
dp_srng_cleanup(soc, &soc->wbm_idle_link_ring, dp_srng_cleanup(soc, &soc->wbm_idle_link_ring,
WBM_IDLE_LINK, 0); WBM_IDLE_LINK, 0);
} }
@@ -2320,6 +2327,7 @@ static void dp_hw_link_desc_pool_cleanup(struct dp_soc *soc)
for (i = 0; i < MAX_LINK_DESC_BANKS; i++) { for (i = 0; i < MAX_LINK_DESC_BANKS; i++) {
if (soc->link_desc_banks[i].base_vaddr_unaligned) { if (soc->link_desc_banks[i].base_vaddr_unaligned) {
qdf_minidump_remove(soc->link_desc_banks[i].base_vaddr);
qdf_mem_free_consistent(soc->osdev, soc->osdev->dev, qdf_mem_free_consistent(soc->osdev, soc->osdev->dev,
soc->link_desc_banks[i].size, soc->link_desc_banks[i].size,
soc->link_desc_banks[i].base_vaddr_unaligned, soc->link_desc_banks[i].base_vaddr_unaligned,
@@ -2756,9 +2764,9 @@ static int dp_soc_cmn_setup(struct dp_soc *soc)
goto fail1; goto fail1;
} }
qdf_minidump_log( qdf_minidump_log(soc->wbm_desc_rel_ring.base_vaddr_unaligned,
(void *)(soc->wbm_desc_rel_ring.base_vaddr_unaligned), soc->wbm_desc_rel_ring.alloc_size,
soc->wbm_desc_rel_ring.alloc_size, "wbm_desc_rel_ring"); "wbm_desc_rel_ring");
soc->num_tcl_data_rings = 0; soc->num_tcl_data_rings = 0;
/* Tx data rings */ /* Tx data rings */
@@ -3379,17 +3387,18 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
struct dp_soc *soc = (struct dp_soc *)txrx_soc; struct dp_soc *soc = (struct dp_soc *)txrx_soc;
struct dp_pdev *pdev = NULL; struct dp_pdev *pdev = NULL;
if (dp_is_soc_reinit(soc)) if (dp_is_soc_reinit(soc)) {
pdev = soc->pdev_list[pdev_id]; pdev = soc->pdev_list[pdev_id];
else } else {
pdev = qdf_mem_malloc(sizeof(*pdev)); pdev = qdf_mem_malloc(sizeof(*pdev));
qdf_minidump_log(pdev, sizeof(*pdev), "dp_pdev");
}
if (!pdev) { if (!pdev) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
FL("DP PDEV memory allocation failed")); FL("DP PDEV memory allocation failed"));
goto fail0; goto fail0;
} }
qdf_minidump_log((void *)pdev, sizeof(*pdev), "dp_pdev");
/* /*
* Variable to prevent double pdev deinitialization during * Variable to prevent double pdev deinitialization during
@@ -3940,6 +3949,7 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force)
} }
soc->pdev_list[pdev->pdev_id] = NULL; soc->pdev_list[pdev->pdev_id] = NULL;
qdf_minidump_remove(pdev);
qdf_mem_free(pdev); qdf_mem_free(pdev);
} }
@@ -4135,6 +4145,7 @@ static void dp_soc_detach(void *txrx_soc)
/* Free the ring memories */ /* Free the ring memories */
/* Common rings */ /* Common rings */
qdf_minidump_remove(soc->wbm_desc_rel_ring.base_vaddr_unaligned);
dp_srng_cleanup(soc, &soc->wbm_desc_rel_ring, SW2WBM_RELEASE, 0); dp_srng_cleanup(soc, &soc->wbm_desc_rel_ring, SW2WBM_RELEASE, 0);
dp_tx_soc_detach(soc); dp_tx_soc_detach(soc);
@@ -4188,6 +4199,7 @@ static void dp_soc_detach(void *txrx_soc)
wlan_cfg_soc_detach(soc->wlan_cfg_ctx); wlan_cfg_soc_detach(soc->wlan_cfg_ctx);
qdf_minidump_remove(soc);
qdf_mem_free(soc); qdf_mem_free(soc);
} }
@@ -4543,7 +4555,7 @@ dp_soc_attach_target_wifi3(struct cdp_soc_t *cdp_soc)
/* initialize work queue for stats processing */ /* initialize work queue for stats processing */
qdf_create_work(0, &soc->htt_stats.work, htt_t2h_stats_handler, soc); qdf_create_work(0, &soc->htt_stats.work, htt_t2h_stats_handler, soc);
qdf_minidump_log((void *)soc, sizeof(*soc), "dp_soc"); qdf_minidump_log(soc, sizeof(*soc), "dp_soc");
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }

View File

@@ -300,7 +300,7 @@ void *hal_attach(void *hif_handle, qdf_device_t qdf_dev)
"%s: hal_soc allocation failed", __func__); "%s: hal_soc allocation failed", __func__);
goto fail0; goto fail0;
} }
qdf_minidump_log((void *)hal, sizeof(*hal), "hal_soc"); qdf_minidump_log(hal, sizeof(*hal), "hal_soc");
hal->hif_handle = hif_handle; hal->hif_handle = hif_handle;
hal->dev_base_addr = hif_get_dev_ba(hif_handle); hal->dev_base_addr = hif_get_dev_ba(hif_handle);
hal->qdf_dev = qdf_dev; hal->qdf_dev = qdf_dev;
@@ -393,6 +393,7 @@ extern void hal_detach(void *hal_soc)
qdf_mem_free_consistent(hal->qdf_dev, hal->qdf_dev->dev, qdf_mem_free_consistent(hal->qdf_dev, hal->qdf_dev->dev,
sizeof(*(hal->shadow_wrptr_mem_vaddr)) * HAL_MAX_LMAC_RINGS, sizeof(*(hal->shadow_wrptr_mem_vaddr)) * HAL_MAX_LMAC_RINGS,
hal->shadow_wrptr_mem_vaddr, hal->shadow_wrptr_mem_paddr, 0); hal->shadow_wrptr_mem_vaddr, hal->shadow_wrptr_mem_paddr, 0);
qdf_minidump_remove(hal);
qdf_mem_free(hal); qdf_mem_free(hal);
return; return;