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