From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Cc: Ohad Ben-Cohen <ohad@wizery.com>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com, julien.massot@iot.bzh
Subject: Re: [PATCH v7 12/12] rpmsg: core: send a ns announcement when a default endpoint is created
Date: Thu, 2 Dec 2021 19:58:14 -0600 [thread overview]
Message-ID: <Yal5tplvcqDjEeTs@builder.lan> (raw)
In-Reply-To: <20211108141937.13016-13-arnaud.pouliquen@foss.st.com>
On Mon 08 Nov 08:19 CST 2021, Arnaud Pouliquen wrote:
> When a channel is created by user space application with the
> RPMSG_CREATE_DEV_IOCTL controls, a ns announcement has to be sent
> (depending on backend) to inform the remote side that a new service
> is available.
>
> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
> ---
> drivers/rpmsg/rpmsg_core.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
> index bdcde57c22f6..63227279397d 100644
> --- a/drivers/rpmsg/rpmsg_core.c
> +++ b/drivers/rpmsg/rpmsg_core.c
> @@ -145,6 +145,9 @@ EXPORT_SYMBOL(rpmsg_destroy_ept);
> *
> * This function returns a pointer to an endpoint created and assigned as the default
> * endpoint of the rpmsg device.
> + * If we need to, we also announce about this channel to the remote
> + * processor. This announcement is needed in case the driver is exposing an rpmsg service that has
> + * been created locally.
> *
> * Drivers should provide their @rpdev channel (so the new endpoint would belong
> * to the same remote processor their channel belongs to), an rx callback
> @@ -161,6 +164,7 @@ struct rpmsg_endpoint *rpmsg_create_default_ept(struct rpmsg_device *rpdev,
> struct rpmsg_channel_info chinfo)
> {
> struct rpmsg_endpoint *ept;
> + int err = 0;
>
> if (WARN_ON(!rpdev))
> return NULL;
> @@ -183,6 +187,16 @@ struct rpmsg_endpoint *rpmsg_create_default_ept(struct rpmsg_device *rpdev,
> rpdev->ept = ept;
> rpdev->src = ept->addr;
>
> + if (rpdev->ops->announce_create)
> + err = rpdev->ops->announce_create(rpdev);
> + if (err) {
> + rpmsg_destroy_ept(ept);
> + rpdev->ept = NULL;
> + rpdev->src = RPMSG_ADDR_ANY;
> +
> + return NULL;
> + }
> +
Unless I'm missing something I think this would be cleaner as:
if (rpdev->ops->announce_create) {
err = rpdev->ops->announce_create(rpdev);
if (err) {
...;
}
}
which also implies that you don't need to zero-initialize err.
Other than that, this looks good and follows what would happen in
rpmsg_dev_probe()...
PS. In rpmsg_dev_probe(), if rpdrv->probe() succeeds but announce_create
returns a failure we will exit the function with an error, which will
just fail really_probe() and we won't ever clean up the device (i.e.
call rpdev->remove()).
Regards,
Bjorn
> return ept;
> }
> EXPORT_SYMBOL(rpmsg_create_default_ept);
> --
> 2.17.1
>
next prev parent reply other threads:[~2021-12-03 1:58 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-08 14:19 [PATCH v7 00/12] Restructure the rpmsg_char driver and introduce rpmsg_ctrl driver Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 01/12] rpmsg: char: Export eptdev create an destroy functions Arnaud Pouliquen
2021-12-03 2:17 ` Bjorn Andersson
2021-12-03 16:37 ` Arnaud POULIQUEN
2021-12-03 16:41 ` Bjorn Andersson
2021-11-08 14:19 ` [PATCH v7 02/12] rpmsg: Create the rpmsg class in core instead of in rpmsg char Arnaud Pouliquen
2021-12-03 2:17 ` Bjorn Andersson
2021-11-08 14:19 ` [PATCH v7 03/12] rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl Arnaud Pouliquen
2021-12-03 2:25 ` Bjorn Andersson
2021-11-08 14:19 ` [PATCH v7 04/12] ARM: configs: Configs that had RPMSG_CHAR now gets RPMSG_CTRL Arnaud Pouliquen
2021-11-08 14:19 ` Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 05/12] RISCV: " Arnaud Pouliquen
2021-11-08 14:19 ` Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 06/12] rpmsg: Update rpmsg_chrdev_register_device function Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 07/12] rpmsg: char: Refactor rpmsg_chrdev_eptdev_create function Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 08/12] rpmsg: Introduce rpmsg_create_default_ept function Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 09/12] rpmsg: char: Add possibility to use default endpoint of the rpmsg device Arnaud Pouliquen
2021-12-03 2:32 ` Bjorn Andersson
2021-11-08 14:19 ` [PATCH v7 10/12] rpmsg: char: Introduce the "rpmsg-raw" channel Arnaud Pouliquen
2021-12-03 1:52 ` Bjorn Andersson
2021-12-03 16:43 ` Arnaud POULIQUEN
2021-11-08 14:19 ` [PATCH v7 11/12] rpmsg: ctrl: Introduce new RPMSG_CREATE/RELEASE_DEV_IOCTL controls Arnaud Pouliquen
2021-11-08 14:19 ` [PATCH v7 12/12] rpmsg: core: send a ns announcement when a default endpoint is created Arnaud Pouliquen
2021-12-03 1:58 ` Bjorn Andersson [this message]
2021-12-03 16:56 ` Arnaud POULIQUEN
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=Yal5tplvcqDjEeTs@builder.lan \
--to=bjorn.andersson@linaro.org \
--cc=arnaud.pouliquen@foss.st.com \
--cc=julien.massot@iot.bzh \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mathieu.poirier@linaro.org \
--cc=ohad@wizery.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.