From f709c67be7cbedd856f9f0162208ee94b9e25ae6 Mon Sep 17 00:00:00 2001 From: Houston Hoffman Date: Mon, 21 Dec 2015 12:14:56 -0800 Subject: [PATCH] qcacld-3.0: Fix firmware assert completion handling Hif needs to guarantee that it frees the buffers that it doesn't pass to upper layers. Change-Id: I816d0a1b19a5a0c00e9669c18dfdf427c102c911 CRs-Fixed: 958124 --- core/hif/src/ce/ce_main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/hif/src/ce/ce_main.c b/core/hif/src/ce/ce_main.c index a6eed4e8a3fa..aaf42961bd2b 100644 --- a/core/hif/src/ce/ce_main.c +++ b/core/hif/src/ce/ce_main.c @@ -694,9 +694,9 @@ hif_pci_ce_send_done(struct CE_handle *copyeng, void *ce_context, if (transfer_context != CE_SENDLIST_ITEM_CTXT) { if (hif_state->scn->target_status == OL_TRGET_STATUS_RESET) - return; - - msg_callbacks->txCompletionHandler( + cdf_nbuf_free(transfer_context); + else + msg_callbacks->txCompletionHandler( msg_callbacks->Context, transfer_context, transfer_id, toeplitz_hash_result); @@ -762,9 +762,9 @@ hif_pci_ce_recv_data(struct CE_handle *copyeng, void *ce_context, atomic_inc(&pipe_info->recv_bufs_needed); hif_post_recv_buffers_for_pipe(pipe_info); if (hif_state->scn->target_status == OL_TRGET_STATUS_RESET) - return; - - hif_ce_do_recv(msg_callbacks, transfer_context, + cdf_nbuf_free(transfer_context); + else + hif_ce_do_recv(msg_callbacks, transfer_context, nbytes, pipe_info); /* Set up force_break flag if num of receices reaches