Merge "msm: ipa3: Fix to flush to workqueue during teardown pipe"

This commit is contained in:
qctecmdr
2022-03-17 11:17:23 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 7 additions and 1 deletions

View File

@@ -1866,6 +1866,12 @@ int ipa3_teardown_sys_pipe(u32 clnt_hdl)
} }
if (ep->sys->repl_wq) if (ep->sys->repl_wq)
flush_workqueue(ep->sys->repl_wq); flush_workqueue(ep->sys->repl_wq);
if(ep->sys->common_sys) {
cancel_delayed_work_sync(&ep->sys->common_sys->freepage_work);
tasklet_kill(&ep->sys->common_sys->tasklet_find_freepage);
}
if (IPA_CLIENT_IS_CONS(ep->client) && !ep->sys->common_buff_pool) if (IPA_CLIENT_IS_CONS(ep->client) && !ep->sys->common_buff_pool)
ipa3_cleanup_rx(ep->sys); ipa3_cleanup_rx(ep->sys);

View File

@@ -1210,7 +1210,6 @@ struct ipa3_sys_context {
struct ipa3_sys_context *common_sys; struct ipa3_sys_context *common_sys;
struct tasklet_struct tasklet_find_freepage; struct tasklet_struct tasklet_find_freepage;
atomic_t page_avilable; atomic_t page_avilable;
struct delayed_work freepage_work;
u32 napi_sort_page_thrshld_cnt; u32 napi_sort_page_thrshld_cnt;
/* ordering is important - mutable fields go above */ /* ordering is important - mutable fields go above */
@@ -1226,6 +1225,7 @@ struct ipa3_sys_context {
struct ipa3_status_stats *status_stat; struct ipa3_status_stats *status_stat;
u32 pm_hdl; u32 pm_hdl;
struct workqueue_struct *freepage_wq; struct workqueue_struct *freepage_wq;
struct delayed_work freepage_work;
/* ordering is important - other immutable fields go below */ /* ordering is important - other immutable fields go below */
}; };