On 1/5/21 2:03 AM, Bjorn Andersson wrote: > On Tue 22 Dec 04:57 CST 2020, Arnaud Pouliquen wrote: > >> The name service announcement is not sent if no endpoint is created by >> default. If the destination address is not precised by the >> application when creating the device (thanks to the RPMsg CTRL interface), >> it is not possible to have a valid RPMsg channel. >> > > In the Qualcomm transports, the chinfo.name is used to identify the > channel, so there it's valid to create a endpoint without dst. So to be move in rpmsg virtio...either reporting an error or generating a NS announcement. Thanks, Arnaud > > Regards, > Bjorn > >> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxxxxxxx> >> --- >> drivers/rpmsg/rpmsg_char.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) >> >> diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c >> index 4b0674a2e3e9..8b1928594d10 100644 >> --- a/drivers/rpmsg/rpmsg_char.c >> +++ b/drivers/rpmsg/rpmsg_char.c >> @@ -305,6 +305,16 @@ static int rpmsg_chrdev_probe(struct rpmsg_device *rpdev) >> struct device *dev; >> int ret; >> >> + /* There is not ept created by default. As consequence there is not NS >> + * announcement and the destination address has to be set. >> + * this limitation could be solved in future by adding a helper in >> + * rpmsg_ns. >> + */ >> + if (rpdev->dst == RPMSG_ADDR_ANY) { >> + dev_err(dev, "destination address invalid (%d)\n", rpdev->dst); >> + return -EINVAL; >> + } >> + >> eptdev = kzalloc(sizeof(*eptdev), GFP_KERNEL); >> if (!eptdev) >> return -ENOMEM; >> -- >> 2.17.1 >>