summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Harkin <ryan.harkin@linaro.org>2017-03-02 17:45:16 +0000
committerTom Rini <trini@konsulko.com>2017-03-09 19:52:14 -0500
commit072c8c4cedad87c4be4edca259e1760d7db42e1b (patch)
tree587431b2c9f407bb892d8c8b07049318abad2815
parent285226785ee178c0bbe8a67185c21e461cf4bc9f (diff)
do_smhload: fix return code
do_smhload was using a ulong to store the return value from smh_load_file. That returns an int, where -1 indicates an error. As a ulong will never be negative, smh_load_file errors were not detected and so_smhload always returned zero. Also, when errors were spotted, do_smhload was returning 1, rather than the enumeration CMD_RET_FAILURE (which is also 1). Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--arch/arm/lib/semihosting.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c
index e32ad909450..415ac89de9f 100644
--- a/arch/arm/lib/semihosting.c
+++ b/arch/arm/lib/semihosting.c
@@ -186,7 +186,7 @@ static int do_smhload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if (argc == 3 || argc == 4) {
ulong load_addr;
ulong end_addr = 0;
- ulong ret;
+ int ret;
char end_str[64];
load_addr = simple_strtoul(argv[2], NULL, 16);
@@ -195,7 +195,7 @@ static int do_smhload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
ret = smh_load_file(argv[1], load_addr, &end_addr);
if (ret < 0)
- return 1;
+ return CMD_RET_FAILURE;
/* Optionally save returned end to the environment */
if (argc == 4) {