qcacmn: Deinit CE tasklet work before CE Cleanup
During freeing up of hif_config_de resources, the ce tasklet workers are deinitialized after the ce cleanup is done. This causes a race condition between shutdown and ce tasklet in case rescheduling of ce taslket is done. Deinitialize the taslket workers before ce structures are deinitialized. Change-Id: I708711174cf818c0d15ef92c881c8d8aee49e9f1 CRs-Fixed: 2283272
Dieser Commit ist enthalten in:
@@ -2885,13 +2885,18 @@ void hif_unconfig_ce(struct hif_softc *hif_sc)
|
||||
pipe_info = &hif_state->pipe_info[pipe_num];
|
||||
if (pipe_info->ce_hdl) {
|
||||
ce_unregister_irq(hif_state, (1 << pipe_num));
|
||||
}
|
||||
}
|
||||
deinit_tasklet_workers(hif_hdl);
|
||||
for (pipe_num = 0; pipe_num < hif_sc->ce_count; pipe_num++) {
|
||||
pipe_info = &hif_state->pipe_info[pipe_num];
|
||||
if (pipe_info->ce_hdl) {
|
||||
ce_fini(pipe_info->ce_hdl);
|
||||
pipe_info->ce_hdl = NULL;
|
||||
pipe_info->buf_sz = 0;
|
||||
qdf_spinlock_destroy(&pipe_info->recv_bufs_needed_lock);
|
||||
}
|
||||
}
|
||||
deinit_tasklet_workers(hif_hdl);
|
||||
if (hif_sc->athdiag_procfs_inited) {
|
||||
athdiag_procfs_remove();
|
||||
hif_sc->athdiag_procfs_inited = false;
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren