From: Jiri Pirko Date: Tue, 19 Apr 2022 17:15:11 +0000 (+0200) Subject: devlink: fix "devlink health dump" command without arg X-Git-Tag: v5.18.0~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e81fd551a1a0ffa7983d25f5e756a5c5b6cb4a9a;p=thirdparty%2Fiproute2.git devlink: fix "devlink health dump" command without arg Fix bug when user calls "devlink health dump" without "show" or "clear": $ devlink health dump Command "(null)" not found Put the dump command into a separate helper as it is usual in the rest of the code. Also, treat no cmd as "show", as it is common for other devlink objects. Fixes: 041e6e651a8e ("devlink: Add devlink health dump show command") Signed-off-by: Jiri Pirko Signed-off-by: Stephen Hemminger --- diff --git a/devlink/devlink.c b/devlink/devlink.c index da9f97788..aab739f7f 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -8526,6 +8526,23 @@ static void cmd_health_help(void) pr_err(" [ auto_dump { true | false } ]\n"); } +static int cmd_health_dump(struct dl *dl) +{ + if (dl_argv_match(dl, "help")) { + cmd_health_help(); + return 0; + } else if (dl_argv_match(dl, "show") || + dl_argv_match(dl, "list") || dl_no_arg(dl)) { + dl_arg_inc(dl); + return cmd_health_dump_show(dl); + } else if (dl_argv_match(dl, "clear")) { + dl_arg_inc(dl); + return cmd_health_dump_clear(dl); + } + pr_err("Command \"%s\" not found\n", dl_argv(dl)); + return -ENOENT; +} + static int cmd_health(struct dl *dl) { if (dl_argv_match(dl, "help")) { @@ -8546,13 +8563,7 @@ static int cmd_health(struct dl *dl) return cmd_health_test(dl); } else if (dl_argv_match(dl, "dump")) { dl_arg_inc(dl); - if (dl_argv_match(dl, "show")) { - dl_arg_inc(dl); - return cmd_health_dump_show(dl); - } else if (dl_argv_match(dl, "clear")) { - dl_arg_inc(dl); - return cmd_health_dump_clear(dl); - } + return cmd_health_dump(dl); } else if (dl_argv_match(dl, "set")) { dl_arg_inc(dl); return cmd_health_set_params(dl);