Skip to content

Commit

Permalink
dynamic_debug: simplify dynamic_debug_init error exit
Browse files Browse the repository at this point in the history
We dont want errors while parsing ddebug_query to unload ddebug
tables, so set success after tables are loaded, and return 0 after
query parsing is done.

Simplify error handling code since its no longer used for success,
and change goto label to out_err to clarify this.

Signed-off-by: Jim Cromie <[email protected]>
Acked-by: Jason Baron <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
jimc authored and gregkh committed Apr 30, 2012
1 parent 6ab676e commit af44239
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions lib/dynamic_debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -984,7 +984,7 @@ static int __init dynamic_debug_init(void)
if (strcmp(modname, iter->modname)) {
ret = ddebug_add_module(iter_start, n, modname);
if (ret)
goto out_free;
goto out_err;
n = 0;
modname = iter->modname;
iter_start = iter;
Expand All @@ -993,9 +993,11 @@ static int __init dynamic_debug_init(void)
}
ret = ddebug_add_module(iter_start, n, modname);
if (ret)
goto out_free;
goto out_err;

/* ddebug_query boot param got passed -> set it up */
ddebug_init_success = 1;

/* apply ddebug_query boot param, dont unload tables on err */
if (ddebug_setup_string[0] != '\0') {
pr_warn("ddebug_query param name is deprecated,"
" change it to dyndbg\n");
Expand All @@ -1005,9 +1007,6 @@ static int __init dynamic_debug_init(void)
ddebug_setup_string);
else
pr_info("%d changes by ddebug_query\n", ret);

/* keep tables even on ddebug_query parse error */
ret = 0;
}
/* now that ddebug tables are loaded, process all boot args
* again to find and activate queries given in dyndbg params.
Expand All @@ -1021,12 +1020,10 @@ static int __init dynamic_debug_init(void)
parse_args("dyndbg params", cmdline, NULL,
0, 0, 0, &ddebug_dyndbg_boot_param_cb);
kfree(cmdline);
return 0;

out_free:
if (ret)
ddebug_remove_all_tables();
else
ddebug_init_success = 1;
out_err:
ddebug_remove_all_tables();
return 0;
}
/* Allow early initialization for boot messages via boot param */
Expand Down

0 comments on commit af44239

Please sign in to comment.