On Tue, Nov 17, 2020 at 12:42:30PM +0100, Arnaud POULIQUEN wrote: [snip] > diff --git a/drivers/rpmsg/rpmsg_ns.c b/drivers/rpmsg/rpmsg_ns.c > index 5bda7cb44618..80c2cc23bada 100644 > --- a/drivers/rpmsg/rpmsg_ns.c > +++ b/drivers/rpmsg/rpmsg_ns.c > @@ -55,6 +55,39 @@ static int rpmsg_ns_cb(struct rpmsg_device *rpdev, void > *data, int len, > return 0; > } > > +/** > + * rpmsg_ns_register_device() - register name service device based on rpdev > + * @rpdev: prepared rpdev to be used for creating endpoints > + * > + * This function wraps rpmsg_register_device() preparing the rpdev for use as > + * basis for the rpmsg name service device. > + */ > +int rpmsg_ns_register_device(struct rpmsg_device *rpdev) > +{ > +#ifdef MODULES > + int ret; > + struct module *rpmsg_ns; > + > + mutex_lock(&module_mutex); > + rpmsg_ns = find_module(KBUILD_MODNAME); > + mutex_unlock(&module_mutex); > + > + if (!rpmsg_ns) { > + ret = request_module(KBUILD_MODNAME); Is this code requesting the module in which it is located?.. I must be missing something... Thanks Guennadi