All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Bjorn Andersson <andersson@kernel.org>,
	 Konrad Dybcio <konrad.dybcio@linaro.org>,
	 Mathieu Poirier <mathieu.poirier@linaro.org>,
	 Sibi Sankar <quic_sibis@quicinc.com>
Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	 Johan Hovold <johan+linaro@kernel.org>,
	Xilin Wu <wuxilin123@gmail.com>,
	 Neil Armstrong <neil.armstrong@linaro.org>
Subject: [PATCH v6 1/6] soc: qcom: pdr: protect locator_addr with the main mutex
Date: Mon, 22 Apr 2024 13:11:16 +0300	[thread overview]
Message-ID: <20240422-qcom-pd-mapper-v6-1-f96957d01207@linaro.org> (raw)
In-Reply-To: <20240422-qcom-pd-mapper-v6-0-f96957d01207@linaro.org>

If the service locator server is restarted fast enough, the PDR can
rewrite locator_addr fields concurrently. Protect them by placing
modification of those fields under the main pdr->lock.

Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers")
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/soc/qcom/pdr_interface.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c
index a1b6a4081dea..19cfe4b41235 100644
--- a/drivers/soc/qcom/pdr_interface.c
+++ b/drivers/soc/qcom/pdr_interface.c
@@ -76,12 +76,12 @@ static int pdr_locator_new_server(struct qmi_handle *qmi,
 					      locator_hdl);
 	struct pdr_service *pds;
 
+	mutex_lock(&pdr->lock);
 	/* Create a local client port for QMI communication */
 	pdr->locator_addr.sq_family = AF_QIPCRTR;
 	pdr->locator_addr.sq_node = svc->node;
 	pdr->locator_addr.sq_port = svc->port;
 
-	mutex_lock(&pdr->lock);
 	pdr->locator_init_complete = true;
 	mutex_unlock(&pdr->lock);
 
@@ -104,10 +104,10 @@ static void pdr_locator_del_server(struct qmi_handle *qmi,
 
 	mutex_lock(&pdr->lock);
 	pdr->locator_init_complete = false;
-	mutex_unlock(&pdr->lock);
 
 	pdr->locator_addr.sq_node = 0;
 	pdr->locator_addr.sq_port = 0;
+	mutex_unlock(&pdr->lock);
 }
 
 static const struct qmi_ops pdr_locator_ops = {

-- 
2.39.2


  reply	other threads:[~2024-04-22 10:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-22 10:11 [PATCH v6 0/6] soc: qcom: add in-kernel pd-mapper implementation Dmitry Baryshkov
2024-04-22 10:11 ` Dmitry Baryshkov [this message]
2024-04-22 10:11 ` [PATCH v6 2/6] soc: qcom: pdr: fix parsing of domains lists Dmitry Baryshkov
2024-04-22 10:11 ` [PATCH v6 3/6] soc: qcom: pdr: extract PDR message marshalling data Dmitry Baryshkov
2024-04-22 22:21   ` Steev Klimaszewski
2024-04-23  9:43     ` Dmitry Baryshkov
2024-04-22 10:11 ` [PATCH v6 4/6] soc: qcom: qmi: add a way to remove running service Dmitry Baryshkov
2024-04-22 10:11 ` [PATCH v6 5/6] soc: qcom: add pd-mapper implementation Dmitry Baryshkov
2024-04-22 10:11 ` [PATCH v6 6/6] remoteproc: qcom: enable in-kernel PD mapper Dmitry Baryshkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240422-qcom-pd-mapper-v6-1-f96957d01207@linaro.org \
    --to=dmitry.baryshkov@linaro.org \
    --cc=andersson@kernel.org \
    --cc=johan+linaro@kernel.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=neil.armstrong@linaro.org \
    --cc=quic_sibis@quicinc.com \
    --cc=wuxilin123@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.