Re: [PATCH v5 8/8] rpmsg: Turn name service into a stand alone driver

Guennadi Liakhovetski
2020-11-06T14:00:37Z

On Fri, Nov 06, 2020 at 02:15:45PM +0100, Guennadi Liakhovetski wrote:
> Hi Mathieu, Arnaud,
>
> On Thu, Nov 05, 2020 at 03:50:28PM -0700, Mathieu Poirier wrote:
> > From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
> >
> > Make the RPMSG name service announcement a stand alone driver so that it
> > can be reused by other subsystems. It is also the first step in making the
> > functionatlity transport independent, i.e that is not tied to virtIO.
>
> Sorry, I just realised that my testing was incomplete. I haven't tested
> automatic module loading and indeed it doesn't work. If rpmsg_ns is loaded
> it probes and it's working, but if it isn't loaded and instead the rpmsg
> bus driver is probed (e.g. virtio_rpmsg_bus), calling
> rpmsg_ns_register_device() to create a new rpmsg_ns device doesn't cause
> rpmsg_ns to be loaded.

A simple fix for that is using MODULE_ALIAS("rpmsg:rpmsg_ns"); in rpmsg_ns.c
but that alone doesn't fix the problem completely - the module does load then
but not quickly enough, the NS announcement from the host / remote arrives
before rpmsg_ns has properly registered. I think the best solution would be
to link rpmsg_ns.c together with rpmsg_core.c. You'll probably want to keep
the module name, so you could rename them to just core.c and ns.c.

Thanks
Guennadi