Thread (4 messages) 4 messages, 2 authors, 2020-08-26

[PATCH] modinfo: dont print module name when --field is given

flat view
STALE2241d

From: Xaver Hörl <hidden>
Date: 2020-08-26 09:36:32
Subsystem: the rest · Maintainer: Linus Torvalds

On Tue, Aug 25, 2020 at 10:27:46AM -0700, Lucas De Marchi wrote:
the name would be handled by the next if/else branch. Unconditionally printing
the name at the beginning for built-in modules doesn't seem something important
to retain. I'd rather handle it in the `if (is_builtin && err ==
-ENOENT) {` below just
not to exit without printing anything. In that case, printing both
name and filename
would be preferred, so the user knows why there isn't additional information
Dropping the "name:" part with --field seems the right thing (updated
patch below implements this). But I don't know what exactly to do about
the error case, not sure if I get your intention right there.

If --field is not given, the name and filename (i.e. "(builtin)" in
this case) will be there anyway, on the other hand if --field
_is_ given it seems a bit inconsistent to give additional output.
Unless you consider this case an error condition of sorts, but the
return value being 0 suggests otherwise.


Thanks for having a look at this!
Xaver Hörl

---
 tools/modinfo.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/tools/modinfo.c b/tools/modinfo.c
index 0231bb0..b49f622 100644
--- a/tools/modinfo.c
+++ b/tools/modinfo.c
@@ -178,14 +178,21 @@ static int modinfo_do(struct kmod_module *mod)
 	is_builtin = (filename == NULL);

 	if (is_builtin) {
-		printf("%-16s%s%c", "name:", kmod_module_get_name(mod), separator);
 		filename = "(builtin)";
 	}

-	if (field != NULL && streq(field, "filename")) {
+	if (field != NULL && streq(field, "name")) {
+		printf("%s%c", kmod_module_get_name(mod),
+			       separator);
+		return 0;
+	} else if (field != NULL && streq(field, "filename")) {
 		printf("%s%c", filename, separator);
 		return 0;
 	} else if (field == NULL) {
+		if (is_builtin) {
+			printf("%-16s%s%c", "name:",
+			       kmod_module_get_name(mod), separator);
+		}
 		printf("%-16s%s%c", "filename:",
 		       filename, separator);
 	}
--
2.28.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help