msm: adsprpc: Fix race in async context response

Currently async job is first added to pending context list and later
job is send to remote sub system. After the job is added to pending
context list, if any SSR happens, all the async pending job contexts are
responded and freed in async response thread. Original thread that added
job to pending context list might not have sent the job, as there is SSR and can
free the context again in same thread. Queue response in SSR only when
the job is sent to remote sub system.

Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
Change-Id: I1f880316f327a8345433d5d22b619ef0a50d7240
此提交包含在:
Himateja Reddy
2023-03-23 17:13:10 -07:00
提交者 Gerrit - the friendly Code Review server
父節點 1c15545211
當前提交 5f713c22a4
共有 2 個檔案被更改,包括 9 行新增2 行删除

查看文件

@@ -836,6 +836,7 @@ struct smq_invoke_ctx {
uint64_t xo_time_in_us_interrupted; /* XO Timestamp (in us) of interrupted ctx */
uint64_t xo_time_in_us_restored; /* XO Timestamp (in us) of restored ctx */
int tx_index; /* index of current ctx in channel gmsg_log array */
bool is_job_sent_to_remote_ss; /* Flag to check if job is sent to remote sub system */
};
struct fastrpc_ctx_lst {