qcacmn: Schedule oom_allocation work for SRNG based CE
On nbuf allocation failure in hif_post_recv_buffers_for_pipe for the last buffer in the CE destination ring, oom_allocation work is not getting scheduled since there is a mismatch between the recv_buffers_needed and the num_entries - 1 of the destination ring. Fix is to schedule the oom_allocation work for srng based CE with appropriate check of recv_buffers_needed and destination ring num_entries. Change-Id: Ie20d5b21358a401e60776db8a3a8a8644279f1fe CRs-Fixed: 2705475
This commit is contained in:

committed by
nshrivas

parent
b3cce9518b
commit
874f714a03
@@ -2454,7 +2454,9 @@ static void hif_post_recv_buffers_failure(struct HIF_CE_pipe_info *pipe_info,
|
|||||||
* there is no trigger to refill the ce and we will
|
* there is no trigger to refill the ce and we will
|
||||||
* eventually crash
|
* eventually crash
|
||||||
*/
|
*/
|
||||||
if (bufs_needed_tmp == CE_state->dest_ring->nentries - 1)
|
if (bufs_needed_tmp == CE_state->dest_ring->nentries - 1 ||
|
||||||
|
(ce_srng_based(scn) &&
|
||||||
|
bufs_needed_tmp == CE_state->dest_ring->nentries - 2))
|
||||||
qdf_sched_work(scn->qdf_dev, &CE_state->oom_allocation_work);
|
qdf_sched_work(scn->qdf_dev, &CE_state->oom_allocation_work);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user