qcacmn: Fix race while stopping the ce poll timer

Set the timer_inited flag to false bit earlier to
stop ce_poll_timeout function from processing

CRs-Fixed: 2182979

Change-Id: I91dd257c6beb21e379a4c51e651d835a35ca76ed
This commit is contained in:
Balamurugan Mahalingam 2018-01-31 16:17:24 +05:30 • committed by snandini
commit f6d3035ec6

View file

@ -1461,9 +1461,11 @@ void ce_fini(struct CE_handle *copyeng)
struct hif_softc *scn = CE_state->scn;
uint32_t desc_size;
bool inited = CE_state->timer_inited;
CE_state->state = CE_UNUSED;
scn->ce_id_to_state[CE_id] = NULL;
/* Set the flag to false first to stop processing in ce_poll_timeout */
CE_state->timer_inited = false;
qdf_lro_deinit(CE_state->lro_data);
if (CE_state->src_ring) {
@ -1503,8 +1505,7 @@ void ce_fini(struct CE_handle *copyeng)
qdf_mem_free(CE_state->dest_ring);
/* epping */
if (CE_state->timer_inited) {
CE_state->timer_inited = false;
if (inited) {
qdf_timer_free(&CE_state->poll_timer);
}
}