[lkml]   [2020]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH V1 1/6] rpmsg: glink: fix destroy channel endpoint logic
From: Konstantin Dorfman <>

When rpmsg client driver destroys last channel endpoint, remove rpmsg
device is triggered. In both cases (destroy endpoint and remove device)
a glink close command sent to the remote peer.

This change, when for removing rpmsg device endpoint already destroyed
will avoid sending second glink close command.

Signed-off-by: Konstantin Dorfman <>
Signed-off-by: Deepak Kumar Singh <>
drivers/rpmsg/qcom_glink_native.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index 1995f5b..2668c66 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -1210,6 +1210,10 @@ static void qcom_glink_destroy_ept(struct rpmsg_endpoint *ept)
unsigned long flags;

spin_lock_irqsave(&channel->recv_lock, flags);
+ if (!channel->ept.cb) {
+ spin_unlock_irqrestore(&channel->recv_lock, flags);
+ return;
+ }
channel->ept.cb = NULL;
spin_unlock_irqrestore(&channel->recv_lock, flags);

The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
 \ /
  Last update: 2020-07-30 07:19    [W:0.047 / U:4.728 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site