[PATCH u-boot] cmd: mmc: Return CMD_RET_* from commands

Numeric return values may cause strange errors line: exit not allowed from main input shell.
Signed-off-by: Pali Rohár pali@kernel.org --- cmd/mmc.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c index c79d9407986d..0b8fc903e1f6 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -175,7 +175,7 @@ static int do_mmcinfo(struct cmd_tbl *cmdtp, int flag, int argc, curr_device = 0; else { puts("No MMC device available\n"); - return 1; + return CMD_RET_FAILURE; } }
@@ -927,7 +927,7 @@ static int mmc_partconf_print(struct mmc *mmc, const char *varname) static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - int dev; + int r, dev; struct mmc *mmc; u8 ack, part_num, access;
@@ -953,13 +953,17 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, access = dectoul(argv[4], NULL);
/* acknowledge to be sent during boot operation */ - return mmc_set_part_conf(mmc, ack, part_num, access); + r = mmc_set_part_conf(mmc, ack, part_num, access); + if (r != 0) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; }
static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - int dev; + int r, dev; struct mmc *mmc; u8 enable;
@@ -988,7 +992,11 @@ static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; }
- return mmc_set_rst_n_function(mmc, enable); + r = mmc_set_rst_n_function(mmc, enable); + if (r != 0) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; } #endif static int do_mmc_setdsr(struct cmd_tbl *cmdtp, int flag,

Hi Pali,
On Mon, 20 Mar 2023 at 05:34, Pali Rohár pali@kernel.org wrote:
Numeric return values may cause strange errors line: exit not allowed from main input shell.
Signed-off-by: Pali Rohár pali@kernel.org
cmd/mmc.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c index c79d9407986d..0b8fc903e1f6 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -175,7 +175,7 @@ static int do_mmcinfo(struct cmd_tbl *cmdtp, int flag, int argc, curr_device = 0; else { puts("No MMC device available\n");
return 1;
return CMD_RET_FAILURE; } }
@@ -927,7 +927,7 @@ static int mmc_partconf_print(struct mmc *mmc, const char *varname) static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) {
int dev;
int r, dev; struct mmc *mmc; u8 ack, part_num, access;
@@ -953,13 +953,17 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, access = dectoul(argv[4], NULL);
/* acknowledge to be sent during boot operation */
return mmc_set_part_conf(mmc, ack, part_num, access);
r = mmc_set_part_conf(mmc, ack, part_num, access);
if (r != 0)
return CMD_RET_FAILURE;
return CMD_RET_SUCCESS;
}
static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) {
int dev;
int r, dev;
Please use 'ret' as that is what we normally do with driver model.
struct mmc *mmc; u8 enable;
@@ -988,7 +992,11 @@ static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; }
return mmc_set_rst_n_function(mmc, enable);
r = mmc_set_rst_n_function(mmc, enable);
if (r != 0)
if (ret)
return CMD_RET_FAILURE;
return CMD_RET_SUCCESS;
'return 0' is fine here as less verbose. Success is 0 in U-Boot.
} #endif static int do_mmc_setdsr(struct cmd_tbl *cmdtp, int flag, -- 2.20.1
Regards, Simon

On Monday 20 March 2023 08:29:04 Simon Glass wrote:
Hi Pali,
On Mon, 20 Mar 2023 at 05:34, Pali Rohár pali@kernel.org wrote:
Numeric return values may cause strange errors line: exit not allowed from main input shell.
Signed-off-by: Pali Rohár pali@kernel.org
cmd/mmc.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c index c79d9407986d..0b8fc903e1f6 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -175,7 +175,7 @@ static int do_mmcinfo(struct cmd_tbl *cmdtp, int flag, int argc, curr_device = 0; else { puts("No MMC device available\n");
return 1;
return CMD_RET_FAILURE; } }
@@ -927,7 +927,7 @@ static int mmc_partconf_print(struct mmc *mmc, const char *varname) static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) {
int dev;
int r, dev; struct mmc *mmc; u8 ack, part_num, access;
@@ -953,13 +953,17 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, access = dectoul(argv[4], NULL);
/* acknowledge to be sent during boot operation */
return mmc_set_part_conf(mmc, ack, part_num, access);
r = mmc_set_part_conf(mmc, ack, part_num, access);
if (r != 0)
return CMD_RET_FAILURE;
return CMD_RET_SUCCESS;
}
static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) {
int dev;
int r, dev;
Please use 'ret' as that is what we normally do with driver model.
Ok.
struct mmc *mmc; u8 enable;
@@ -988,7 +992,11 @@ static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; }
return mmc_set_rst_n_function(mmc, enable);
r = mmc_set_rst_n_function(mmc, enable);
if (r != 0)
if (ret)
return CMD_RET_FAILURE;
return CMD_RET_SUCCESS;
'return 0' is fine here as less verbose. Success is 0 in U-Boot.
On all other mmc.c places is used verbose CMD_RET_SUCCESS macro. So it is better to have one common style.
} #endif static int do_mmc_setdsr(struct cmd_tbl *cmdtp, int flag, -- 2.20.1
Regards, Simon

Numeric return values may cause strange errors line: exit not allowed from main input shell.
Signed-off-by: Pali Rohár pali@kernel.org --- Rename r to ret. --- cmd/mmc.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/cmd/mmc.c b/cmd/mmc.c index c79d9407986d..539d3e0bf768 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -175,7 +175,7 @@ static int do_mmcinfo(struct cmd_tbl *cmdtp, int flag, int argc, curr_device = 0; else { puts("No MMC device available\n"); - return 1; + return CMD_RET_FAILURE; } }
@@ -927,7 +927,7 @@ static int mmc_partconf_print(struct mmc *mmc, const char *varname) static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - int dev; + int ret, dev; struct mmc *mmc; u8 ack, part_num, access;
@@ -953,13 +953,17 @@ static int do_mmc_partconf(struct cmd_tbl *cmdtp, int flag, access = dectoul(argv[4], NULL);
/* acknowledge to be sent during boot operation */ - return mmc_set_part_conf(mmc, ack, part_num, access); + ret = mmc_set_part_conf(mmc, ack, part_num, access); + if (ret != 0) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; }
static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - int dev; + int ret, dev; struct mmc *mmc; u8 enable;
@@ -988,7 +992,11 @@ static int do_mmc_rst_func(struct cmd_tbl *cmdtp, int flag, return CMD_RET_FAILURE; }
- return mmc_set_rst_n_function(mmc, enable); + ret = mmc_set_rst_n_function(mmc, enable); + if (ret != 0) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; } #endif static int do_mmc_setdsr(struct cmd_tbl *cmdtp, int flag,

On Thu, 23 Mar 2023 at 09:07, Pali Rohár pali@kernel.org wrote:
Numeric return values may cause strange errors line: exit not allowed from main input shell.
Signed-off-by: Pali Rohár pali@kernel.org
Rename r to ret.
cmd/mmc.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
participants (2)
-
Pali Rohár
-
Simon Glass