On Wed 01 Jul 12:59 PDT 2020, Sibi Sankar wrote: > The Protection Domains (PD) have a mechanism to keep its resources > enabled until the PD down indication is acked. Reorder the PD state > indication ack so that clients get to release the relevant resources > before the PD goes down. > > Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers") > Reported-by: Rishabh Bhatnagar <rishabhb@xxxxxxxxxxxxxx> > Signed-off-by: Sibi Sankar <sibis@xxxxxxxxxxxxxx> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> > --- > > I couldn't find the previous patch on patchworks. Resending the patch > since it would need to land on stable trees as well > > drivers/soc/qcom/pdr_interface.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c > index a90d707da6894..088dc99f77f3f 100644 > --- a/drivers/soc/qcom/pdr_interface.c > +++ b/drivers/soc/qcom/pdr_interface.c > @@ -279,13 +279,15 @@ static void pdr_indack_work(struct work_struct *work) > > list_for_each_entry_safe(ind, tmp, &pdr->indack_list, node) { > pds = ind->pds; > - pdr_send_indack_msg(pdr, pds, ind->transaction_id); > > mutex_lock(&pdr->status_lock); > pds->state = ind->curr_state; > pdr->status(pds->state, pds->service_path, pdr->priv); > mutex_unlock(&pdr->status_lock); > > + /* Ack the indication after clients release the PD resources */ > + pdr_send_indack_msg(pdr, pds, ind->transaction_id); > + > mutex_lock(&pdr->list_lock); > list_del(&ind->node); > mutex_unlock(&pdr->list_lock); > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project >