diff options
Diffstat (limited to 'common/cmd_flash.c')
| -rw-r--r-- | common/cmd_flash.c | 15 | 
1 files changed, 7 insertions, 8 deletions
| diff --git a/common/cmd_flash.c b/common/cmd_flash.c index 201f4e33d..cb1c5bb43 100644 --- a/common/cmd_flash.c +++ b/common/cmd_flash.c @@ -125,13 +125,16 @@ abbrev_spec (char *str, flash_info_t ** pinfo, int *psf, int *psl)  static int  addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)  { -	char len_used = 0; /* indicates if the "start +length" form used */  	char *ep; +	char len_used; /* indicates if the "start +length" form used */ +	char found; +	ulong bank;  	*addr_first = simple_strtoul(arg1, &ep, 16);  	if (ep == arg1 || *ep != '\0')  		return -1; +	len_used = 0;  	if (arg2 && *arg2 == '+'){  		len_used = 1;  		++arg2; @@ -142,9 +145,6 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)  		return -1;  	if (len_used){ -		char found = 0; -		ulong bank; -  		/*  		 * *addr_last has the length, compute correct *addr_last  		 * XXX watch out for the integer overflow! Right now it is @@ -159,6 +159,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)  		 */  		/* find the end addr of the sector where the *addr_last is */ +		found = 0;  		for (bank = 0; bank < CFG_MAX_FLASH_BANKS && !found; ++bank){  			int i;  			flash_info_t *info = &flash_info[bank]; @@ -506,12 +507,10 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  				info->protect[i] = p;  #endif	/* CFG_FLASH_PROTECTION */  			} -		} -  #if defined(CFG_FLASH_PROTECTION) -		if (!rcode) puts (" done\n"); +			if (!rcode) puts (" done\n");  #endif	/* CFG_FLASH_PROTECTION */ - +		}  		return rcode;  	} |