diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index e55f823436..e0ef007c65 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -1233,8 +1233,11 @@ void ce_t2h_msg_ce_cleanup(struct CE_handle *ce_hdl) * covered that case. This is not in performance path, * so OK to do this. */ - if (nbuf) + if (nbuf) { + qdf_nbuf_unmap_single(ce_state->scn->qdf_dev, nbuf, + QDF_DMA_FROM_DEVICE); qdf_nbuf_free(nbuf); + } } } @@ -1519,9 +1522,13 @@ hif_pci_ce_send_done(struct CE_handle *copyeng, void *ce_context, * when last fragment is complteted. */ if (transfer_context != CE_SENDLIST_ITEM_CTXT) { - if (scn->target_status == TARGET_STATUS_RESET) + if (scn->target_status == TARGET_STATUS_RESET) { + + qdf_nbuf_unmap_single(scn->qdf_dev, + transfer_context, + QDF_DMA_TO_DEVICE); qdf_nbuf_free(transfer_context); - else + } else msg_callbacks->txCompletionHandler( msg_callbacks->Context, transfer_context, transfer_id, @@ -1561,6 +1568,7 @@ static inline void hif_ce_do_recv(struct hif_msg_callbacks *msg_callbacks, } else { HIF_ERROR("%s: Invalid Rx msg buf:%p nbytes:%d", __func__, netbuf, nbytes); + qdf_nbuf_free(netbuf); } }