Re: [PATCH 3/4] kmod: Return directly if module name is empty in request_module()

From: Tiezhu Yang
Date: Sat Apr 18 2020 - 02:07:19 EST


On 04/18/2020 01:48 PM, Luis Chamberlain wrote:
On Fri, Apr 17, 2020 at 11:45 PM Luis Chamberlain <mcgrof@xxxxxxxxxx> 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@xxxxxxxxxxx>
---
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.