All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arun Kumar Neelakantam <aneela@codeaurora.org>
To: ohad@wizery.com, bjorn.andersson@linaro.org, clew@codeaurora.org,
	sricharan@codeaurora.org
Cc: linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Arun Kumar Neelakantam <aneela@codeaurora.org>,
	Andy Gross <agross@kernel.org>,
	linux-arm-msm@vger.kernel.org (open list:ARM/QUALCOMM SUPPORT)
Subject: [PATCH V5 5/5] rpmsg: glink: unregister rpmsg device during endpoint destroy
Date: Wed, 13 May 2020 10:40:06 +0530	[thread overview]
Message-ID: <1589346606-15046-6-git-send-email-aneela@codeaurora.org> (raw)
In-Reply-To: <1589346606-15046-1-git-send-email-aneela@codeaurora.org>

Rpmsg device unregister is not happening if channel close is triggered
from local side and causing re-registration of device failures.

Unregister rpmsg device for local close in endpoint destroy path.

Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
---
 drivers/rpmsg/qcom_glink_native.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index 0e8a28c0..fc8ef66 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -1207,6 +1207,7 @@ static void qcom_glink_destroy_ept(struct rpmsg_endpoint *ept)
 {
 	struct glink_channel *channel = to_glink_channel(ept);
 	struct qcom_glink *glink = channel->glink;
+	struct rpmsg_channel_info chinfo;
 	unsigned long flags;
 
 	spin_lock_irqsave(&channel->recv_lock, flags);
@@ -1214,6 +1215,13 @@ static void qcom_glink_destroy_ept(struct rpmsg_endpoint *ept)
 	spin_unlock_irqrestore(&channel->recv_lock, flags);
 
 	/* Decouple the potential rpdev from the channel */
+	if (channel->rpdev) {
+		strncpy(chinfo.name, channel->name, sizeof(chinfo.name));
+		chinfo.src = RPMSG_ADDR_ANY;
+		chinfo.dst = RPMSG_ADDR_ANY;
+
+		rpmsg_unregister_device(glink->dev, &chinfo);
+	}
 	channel->rpdev = NULL;
 
 	qcom_glink_send_close_req(glink, channel);
@@ -1477,6 +1485,7 @@ static void qcom_glink_rx_close(struct qcom_glink *glink, unsigned int rcid)
 
 		rpmsg_unregister_device(glink->dev, &chinfo);
 	}
+	channel->rpdev = NULL;
 
 	qcom_glink_send_close_ack(glink, channel->rcid);
 
-- 
2.7.4

  parent reply	other threads:[~2020-05-13  5:10 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-13  5:10 [PATCH V5 0/5] Add chrdev and name query support for GLINK Arun Kumar Neelakantam
2020-05-13  5:10 ` [PATCH V5 1/5] rpmsg: glink: Use complete_all for open states Arun Kumar Neelakantam
2020-05-13 20:59   ` Mathieu Poirier
2020-05-20  9:28     ` Arun Kumar Neelakantam
2020-05-13  5:10 ` [PATCH V5 2/5] rpmsg: Guard against null endpoint ops in destroy Arun Kumar Neelakantam
2020-05-13  5:10 ` [PATCH V5 3/5] rpmsg: glink: Add support for rpmsg glink chrdev Arun Kumar Neelakantam
2020-05-13 21:56   ` Mathieu Poirier
2020-05-13  5:10 ` [PATCH V5 4/5] rpmsg: glink: Expose rpmsg name attr for glink Arun Kumar Neelakantam
2020-05-13  5:10 ` Arun Kumar Neelakantam [this message]
2020-05-13 22:13   ` [PATCH V5 5/5] rpmsg: glink: unregister rpmsg device during endpoint destroy Mathieu Poirier
2020-05-20  9:32     ` Arun Kumar Neelakantam
     [not found] <1574417087-27594-1-git-send-email-aneela@codeaurora.org>
2019-11-22 10:05 ` Arun Kumar Neelakantam
2019-11-22 10:05   ` Arun Kumar Neelakantam
2019-11-22 10:05 ` Arun Kumar Neelakantam

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=1589346606-15046-6-git-send-email-aneela@codeaurora.org \
    --to=aneela@codeaurora.org \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=clew@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=ohad@wizery.com \
    --cc=sricharan@codeaurora.org \
    /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.