qcacld-3.0: Free hif recv buffers in cds_flush

Hif recv buffers with fw events were being leaked
in the cds_sched_flush_mc_mqs opperation.

Change-Id: Idc7752740eb955b61876bd235e5e9516f98af4bf
CRs-Fixed: 2004858
This commit is contained in:
Houston Hoffman 2017-05-30 19:24:07 -07:00 • committed by snandini
commit b6084f1ab8

View file

@ -1589,6 +1589,21 @@ QDF_STATUS wma_process_hal_pwr_dbg_cmd(WMA_HANDLE handle,
return status;
}
static void wma_discard_fw_event(struct scheduler_msg *msg)
{
switch (msg->type) {
case WMA_PROCESS_FW_EVENT:
qdf_nbuf_free(((wma_process_fw_event_params *)msg->bodyptr)
->evt_buf);
break;
}
if (msg->bodyptr)
qdf_mem_free(msg->bodyptr);
msg->bodyptr = NULL;
msg->bodyval = 0;
msg->type = 0;
}
/**
* wma_process_fw_event_handler() - common event handler to serialize
* event processing through mc_thread
@ -1616,6 +1631,7 @@ static int wma_process_fw_event_mc_thread_ctx(void *ctx, void *ev)
cds_msg.type = WMA_PROCESS_FW_EVENT;
cds_msg.bodyptr = params_buf;
cds_msg.bodyval = 0;
cds_msg.flush_callback = wma_discard_fw_event;
if (QDF_STATUS_SUCCESS !=
scheduler_post_msg(QDF_MODULE_ID_WMA, &cds_msg)) {