[PATCH] arm64: zynqmp: Fix command error values properly

Process errors from command via cmd_process_error() as is done on Versal. When internal function returns different number then CMD_RET_SUCCESS(0), CMD_RET_FAILURE(1) or CMD_RET_USAGE(-1) shell react on these errors by throwing an error like "exit not allowed from main input shell." that's why use cmd_process_error() to make sure that error code is all the time correct.
Signed-off-by: Michal Simek michal.simek@amd.com ---
board/xilinx/zynqmp/cmds.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c index c1224bdf821f..9d375b075501 100644 --- a/board/xilinx/zynqmp/cmds.c +++ b/board/xilinx/zynqmp/cmds.c @@ -394,17 +394,17 @@ static int do_zynqmp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { struct cmd_tbl *c; + int ret = CMD_RET_USAGE;
if (argc < 2) return CMD_RET_USAGE;
c = find_cmd_tbl(argv[1], &cmd_zynqmp_sub[0], ARRAY_SIZE(cmd_zynqmp_sub)); - if (c) - return c->cmd(c, flag, argc, argv); - else - return CMD_RET_USAGE; + ret = c->cmd(c, flag, argc, argv); + + return cmd_process_error(c, ret); }
/***************************************************/

On 6/1/23 13:21, Michal Simek wrote:
Process errors from command via cmd_process_error() as is done on Versal. When internal function returns different number then CMD_RET_SUCCESS(0), CMD_RET_FAILURE(1) or CMD_RET_USAGE(-1) shell react on these errors by throwing an error like "exit not allowed from main input shell." that's why use cmd_process_error() to make sure that error code is all the time correct.
Signed-off-by: Michal Simek michal.simek@amd.com
board/xilinx/zynqmp/cmds.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c index c1224bdf821f..9d375b075501 100644 --- a/board/xilinx/zynqmp/cmds.c +++ b/board/xilinx/zynqmp/cmds.c @@ -394,17 +394,17 @@ static int do_zynqmp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { struct cmd_tbl *c;
int ret = CMD_RET_USAGE;
if (argc < 2) return CMD_RET_USAGE;
c = find_cmd_tbl(argv[1], &cmd_zynqmp_sub[0], ARRAY_SIZE(cmd_zynqmp_sub));
- if (c)
return c->cmd(c, flag, argc, argv);
- else
return CMD_RET_USAGE;
ret = c->cmd(c, flag, argc, argv);
return cmd_process_error(c, ret); }
/***************************************************/
Applied. M
participants (1)
-
Michal Simek