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>
This commit is contained in:
		
							parent
							
								
									285226785e
								
							
						
					
					
						commit
						072c8c4ced
					
				|  | @ -186,7 +186,7 @@ static int do_smhload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) | ||||||
| 	if (argc == 3 || argc == 4) { | 	if (argc == 3 || argc == 4) { | ||||||
| 		ulong load_addr; | 		ulong load_addr; | ||||||
| 		ulong end_addr = 0; | 		ulong end_addr = 0; | ||||||
| 		ulong ret; | 		int ret; | ||||||
| 		char end_str[64]; | 		char end_str[64]; | ||||||
| 
 | 
 | ||||||
| 		load_addr = simple_strtoul(argv[2], NULL, 16); | 		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); | 		ret = smh_load_file(argv[1], load_addr, &end_addr); | ||||||
| 		if (ret < 0) | 		if (ret < 0) | ||||||
| 			return 1; | 			return CMD_RET_FAILURE; | ||||||
| 
 | 
 | ||||||
| 		/* Optionally save returned end to the environment */ | 		/* Optionally save returned end to the environment */ | ||||||
| 		if (argc == 4) { | 		if (argc == 4) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue