Linux Kernel Selftest development
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Tiezhu Yang <yangtiezhu@loongson.cn>, Jessica Yu <jeyu@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Shuah Khan <shuah@kernel.org>,
	"open list:KERNEL SELFTEST FRAMEWORK" 
	<linux-kselftest@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Xuefeng Li <lixuefeng@loongson.cn>
Subject: Re: [PATCH 3/4] kmod: Return directly if module name is empty in request_module()
Date: Sat, 18 Apr 2020 07:19:05 +0000	[thread overview]
Message-ID: <20200418071905.GE11244@42.do-not-panic.com> (raw)
In-Reply-To: <b9c6e6e6-571a-b957-755f-72f2b0f538c5@loongson.cn>

On Sat, Apr 18, 2020 at 01:58:45PM +0800, Tiezhu Yang wrote:
> On 04/18/2020 01:48 PM, Luis Chamberlain wrote:
> > On Fri, Apr 17, 2020 at 11:45 PM Luis Chamberlain <mcgrof@kernel.org> wrote:
> > > On Sat, Apr 18, 2020 at 01:19:59PM +0800, Tiezhu Yang wrote:
> > > > If module name is empty, it is better to return directly at the beginning
> > > > of request_module() without doing the needless call_modprobe() operation.
> > > > 
> > > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> > > > ---
> > > >   kernel/kmod.c | 5 +++++
> > > >   1 file changed, 5 insertions(+)
> > > > 
> > > > diff --git a/kernel/kmod.c b/kernel/kmod.c
> > > > index 3cd075c..5851444 100644
> > > > --- a/kernel/kmod.c
> > > > +++ b/kernel/kmod.c
> > > > @@ -28,6 +28,8 @@
> > > > 
> > > >   #include <trace/events/module.h>
> > > > 
> > > > +#define MODULE_NOT_FOUND 256
> > > > +
> > > >   /*
> > > >    * Assuming:
> > > >    *
> > > > @@ -144,6 +146,9 @@ int __request_module(bool wait, const char *fmt, ...)
> > > >        if (ret >= MODULE_NAME_LEN)
> > > >                return -ENAMETOOLONG;
> > > > 
> > > > +     if (strlen(module_name) == 0)
> > > > +             return MODULE_NOT_FOUND;
> > > I'd rather we just use something standard like -EINVAL.
> > > What do we return if its not found? Then use that value.
> > Also, are we testing for this condition yet? If not can we add one?
> 
> Yes, kmod_test_0001_driver() in tools/testing/selftests/kmod/kmod.sh tests
> this case and expects result MODULE_NOT_FOUND which is 256.

OK I see now I had put:

errno_name_to_val()                                                             
{                                                                               
        case "$1" in                                                            
	# kmod calls modprobe and upon of a module not found                    
	# modprobe returns just 1... However in the
	# kernel we *sometimes* see 256... 
	MODULE_NOT_FOUND)                                                       
		echo 256;;

I found that through testing, however there was nothing set in stone,
nothing documented. While you are at it, can you find the places where
this is returned in the kernel code? We should clear this up and
se things straight. We cannot change what we gave userspace already
though.

  Luis

  reply	other threads:[~2020-04-18  7:19 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-18  5:19 [PATCH 1/4] selftests: kmod: Use variable NAME in kmod_test_0001() Tiezhu Yang
2020-04-18  5:19 ` [PATCH 2/4] kmod: Remove redundant "be an" in the comment Tiezhu Yang
2020-04-18  5:47   ` Luis Chamberlain
2020-04-18  5:19 ` [PATCH 3/4] kmod: Return directly if module name is empty in request_module() Tiezhu Yang
2020-04-18  5:45   ` Luis Chamberlain
2020-04-18  5:48     ` Luis Chamberlain
2020-04-18  5:58       ` Tiezhu Yang
2020-04-18  7:19         ` Luis Chamberlain [this message]
2020-04-20  4:08           ` Tiezhu Yang
2020-04-20  4:11             ` Tiezhu Yang
2020-04-18  5:20 ` [PATCH 4/4] test_kmod: Avoid potential double free in trigger_config_run_type() Tiezhu Yang
2020-04-18  5:47   ` Luis Chamberlain
2020-04-18  5:46 ` [PATCH 1/4] selftests: kmod: Use variable NAME in kmod_test_0001() Luis Chamberlain

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=20200418071905.GE11244@42.do-not-panic.com \
    --to=mcgrof@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=jeyu@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=lixuefeng@loongson.cn \
    --cc=shuah@kernel.org \
    --cc=yangtiezhu@loongson.cn \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox