diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index 173b56796c..e2d6f8fc77 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -1288,6 +1288,7 @@ void ce_fini(struct CE_handle *copyeng) struct CE_state *CE_state = (struct CE_state *)copyeng; unsigned int CE_id = CE_state->id; struct hif_softc *scn = CE_state->scn; + uint32_t desc_size; CE_state->state = CE_UNUSED; scn->ce_id_to_state[CE_id] = NULL; @@ -1298,13 +1299,14 @@ void ce_fini(struct CE_handle *copyeng) /* Cleanup the datapath Tx ring */ ce_h2t_tx_ce_cleanup(copyeng); + desc_size = ce_get_desc_size(scn, CE_RING_SRC); if (CE_state->src_ring->shadow_base_unaligned) qdf_mem_free(CE_state->src_ring->shadow_base_unaligned); if (CE_state->src_ring->base_addr_owner_space_unaligned) qdf_mem_free_consistent(scn->qdf_dev, scn->qdf_dev->dev, (CE_state->src_ring->nentries * - sizeof(struct CE_src_desc) + + desc_size + CE_DESC_RING_ALIGN), CE_state->src_ring-> base_addr_owner_space_unaligned, @@ -1316,11 +1318,12 @@ void ce_fini(struct CE_handle *copyeng) /* Cleanup the datapath Rx ring */ ce_t2h_msg_ce_cleanup(copyeng); + desc_size = ce_get_desc_size(scn, CE_RING_DEST); if (CE_state->dest_ring->base_addr_owner_space_unaligned) qdf_mem_free_consistent(scn->qdf_dev, scn->qdf_dev->dev, (CE_state->dest_ring->nentries * - sizeof(struct CE_dest_desc) + + desc_size + CE_DESC_RING_ALIGN), CE_state->dest_ring-> base_addr_owner_space_unaligned, @@ -1342,11 +1345,12 @@ void ce_fini(struct CE_handle *copyeng) qdf_mem_free( CE_state->status_ring->shadow_base_unaligned); + desc_size = ce_get_desc_size(scn, CE_RING_STATUS); if (CE_state->status_ring->base_addr_owner_space_unaligned) qdf_mem_free_consistent(scn->qdf_dev, scn->qdf_dev->dev, (CE_state->status_ring->nentries * - sizeof(struct CE_src_desc) + + desc_size + CE_DESC_RING_ALIGN), CE_state->status_ring-> base_addr_owner_space_unaligned,