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. 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 >