On Thu, 14 Mar 2024 at 01:35, Chris Lew <quic_clew@xxxxxxxxxxx> wrote: > > > > On 3/11/2024 8:34 AM, Dmitry Baryshkov wrote: > > @@ -133,11 +133,13 @@ static int pdr_register_listener(struct pdr_handle *pdr, > > req.enable = enable; > > strscpy(req.service_path, pds->service_path, sizeof(req.service_path)); > > > > + mutex_lock(&pdr->lock); > > ret = qmi_send_request(&pdr->notifier_hdl, &pds->addr, > > &txn, SERVREG_REGISTER_LISTENER_REQ, > > SERVREG_REGISTER_LISTENER_REQ_LEN, > > servreg_register_listener_req_ei, > > &req); > > + mutex_unlock(&pdr->lock); > > if (ret < 0) { > > qmi_txn_cancel(&txn); > > return ret; > > > > Hi Dmitry, > > What is the reason for taking the pdr lock here? The addr struct passed > into qmi_send_request is from the pdr_service. I think this is different > from the pdr_handle we are protecting in the other parts of the patch. Indeed, we should be taking pdr->list_lock. -- With best wishes Dmitry