cmd: eeprom: don't truncate target address at 32-bit
authorBaruch Siach <baruch@tkos.co.il>
Sun, 23 Oct 2022 09:28:12 +0000 (12:28 +0300)
committerTom Rini <trini@konsulko.com>
Wed, 2 Nov 2022 17:58:17 +0000 (13:58 -0400)
On 64-bit platforms where int is 32-bit wide, the eeprom command
parse_numeric_param() routine truncates the memory address parameter to
the lower 32-bit. Make parse_numeric_param() return long to allow
read/write of addresses beyond the lower 4GB.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
cmd/eeprom.c

index fc0d444..0b6ca8c 100644 (file)
@@ -200,10 +200,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;
 }