[LEDE-DEV] [PATCH ubox] kmodloader: support '-q' quiet option
John Crispin
john at phrozen.org
Fri Jan 27 02:36:36 PST 2017
On 27/01/2017 11:33, Kevin Darbyshire-Bryant wrote:
> The kernel opportunistically attempts to load modules in advanced with
> 'predicted' module names. Often these modules don't exist and hence
> kmodloader produces lots of logfile noise. The kernel commandline to
> modprobe from kworker proceses is '-q -- modulename' where '-q' means
> quiet.
>
> Signed-off-by: Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk>
> ---
> kmodloader.c | 35 +++++++++++++++++++++++++----------
> 1 file changed, 25 insertions(+), 10 deletions(-)
>
> diff --git a/kmodloader.c b/kmodloader.c
> index 729027a..52a745f 100644
> --- a/kmodloader.c
> +++ b/kmodloader.c
> @@ -660,6 +660,13 @@ static int print_insmod_usage(void)
> return -1;
> }
>
> +static int print_modprobe_usage(void)
> +{
> + ULOG_INFO("Usage:\n\tmodprobe [-q] filename\n");
> +
> + return -1;
> +}
> +
> static int print_usage(char *arg)
> {
> ULOG_INFO("Usage:\n\t%s module\n", arg);
> @@ -824,15 +831,23 @@ static int main_modprobe(int argc, char **argv)
> struct module *m;
> char *name;
> char *mod = NULL;
> - int i;
> + int opt;
> + bool quiet = false;
> +
> + while ((opt = getopt(argc, argv, "q")) != -1 ) {
> + switch (opt) {
> + case 'q': /* shhhh! */
> + quiet = true;
> + break;
> + default: /* '?' */
> + return print_modprobe_usage();
> + break;
> + }
> + }
>
> - for (i = 1; i < argc; i++)
> - if (argv[i][0] != '-') {
> - mod = argv[i];
> - break;
> - }
> - if (!mod)
> - return print_usage("modprobe");
> + if (optind >= argc) return print_modprobe_usage(); /* expected module after options */
> +
> + mod = argv[optind];
>
> if (scan_module_folders())
> return -1;
> @@ -843,10 +858,10 @@ static int main_modprobe(int argc, char **argv)
> name = get_module_name(mod);
> m = find_module(name);
> if (m && m->state == LOADED) {
> - ULOG_ERR("%s is already loaded\n", name);
> + if (!quiet) ULOG_ERR("%s is already loaded\n", name);
> return -1;
i can see why we would want to silence this one
> } else if (!m) {
> - ULOG_ERR("failed to find a module named %s\n", name);
> + if (!quiet) ULOG_ERR("failed to find a module named %s\n", name);
but do we really want to silence this error ?
> } else {
> int fail;
>
>
More information about the Lede-dev
mailing list