summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJianlong.Huang <jianlong.huang@starfivetech.com>2021-10-27 04:17:57 +0300
committerSom.Qin <som.qin@starfivetech.com>2022-01-06 05:40:48 +0300
commitc9954fb33ecb480dae56882ff8bf3dd8218644ef (patch)
tree7a8465d851947d57cc759f9b4a228606e3e22d5c
parentf4bbb9dcb22cc98090ed7e8514a427a30ab27669 (diff)
downloadu-boot-c9954fb33ecb480dae56882ff8bf3dd8218644ef.tar.xz
cmd/eeprom: fix data type issue for parse_numeric_param
This patch fixs parse_numeric_param issue on some platfrom which has different sizes of int and long, like riscv64. On riscv64, int is 4 bytes, but long is 8 bytes. on this situation: ulong addr = parse_numeric_param(argv[index]); if argv[index] is "0x80000000", this "ulong addr" will be 0xffffffff80000000. Signed-off-by: Jianlong.Huang <jianlong.huang@starfivetech.com> Co-developed-by: Wei Fu <wefu@redhat.com> Signed-off-by: Wei Fu <wefu@redhat.com>
-rw-r--r--cmd/eeprom.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/cmd/eeprom.c b/cmd/eeprom.c
index efd6f3ac03..d316392f87 100644
--- a/cmd/eeprom.c
+++ b/cmd/eeprom.c
@@ -218,10 +218,10 @@ int eeprom_write(unsigned dev_addr, unsigned offset,
return ret;
}
-static int parse_numeric_param(char *str)
+static long parse_numeric_param(char *str)
{
char *endptr;
- int value = simple_strtol(str, &endptr, 16);
+ long value = simple_strtol(str, &endptr, 16);
return (*endptr != '\0') ? -1 : value;
}