All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] rpmsg: char: return an error if device already open
@ 2021-01-06 13:37 Arnaud Pouliquen
  2021-01-14 19:05 ` Mathieu Poirier
  2021-03-18 13:10 ` patchwork-bot+linux-remoteproc
  0 siblings, 2 replies; 7+ messages in thread
From: Arnaud Pouliquen @ 2021-01-06 13:37 UTC (permalink / raw)
  To: Bjorn Andersson, Ohad Ben-Cohen, Mathieu Poirier
  Cc: linux-remoteproc, linux-kernel, linux-stm32, arnaud.pouliquen

The rpmsg_create_ept function is invoked when the device is opened.
As only one endpoint must be created per device. It is not
possible to open the same device twice.
The fix consists in returning -EBUSY when device is already
opened.

Fixes: c0cdc19f84a4 ("rpmsg: Driver for user space endpoint interface")
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
---
 drivers/rpmsg/rpmsg_char.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c
index 4bbbacdbf3bb..360a1ab0a9c4 100644
--- a/drivers/rpmsg/rpmsg_char.c
+++ b/drivers/rpmsg/rpmsg_char.c
@@ -127,6 +127,9 @@ static int rpmsg_eptdev_open(struct inode *inode, struct file *filp)
 	struct rpmsg_device *rpdev = eptdev->rpdev;
 	struct device *dev = &eptdev->dev;
 
+	if (eptdev->ept)
+		return -EBUSY;
+
 	get_device(dev);
 
 	ept = rpmsg_create_ept(rpdev, rpmsg_ept_cb, eptdev, eptdev->chinfo);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-03-18 13:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-06 13:37 [PATCH] rpmsg: char: return an error if device already open Arnaud Pouliquen
2021-01-14 19:05 ` Mathieu Poirier
2021-01-15  9:13   ` [Linux-stm32] " Arnaud POULIQUEN
2021-01-19 16:00     ` Mathieu Poirier
2021-01-25 15:31     ` Bjorn Andersson
2021-01-25 17:19       ` Arnaud POULIQUEN
2021-03-18 13:10 ` patchwork-bot+linux-remoteproc

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.