From: Heiko Stuebner Date: Wed, 25 Sep 2019 18:40:56 +0000 (+0200) Subject: rockchip: misc: read the correct number of bytes from the efuse X-Git-Tag: v2019.10~9^2~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=03f98b75e47ef9df890d92b4989fdd209ba55734;p=oweals%2Fu-boot.git rockchip: misc: read the correct number of bytes from the efuse Originally the cpuid var the value gets read into was defined as u8 cpuid[RK3399_CPUID_LEN]; hence the sizeof(cpuid) would return the correct the correct number of array elements. With the move to a separate function cpuid becomes a pointer and sizeof(cpuid) hence returns the pointer size - 8 in the arm64 case. We do have the actual id length available as function param so use it for actual amount of bytes to read. Fixes: 04825384999f ("rockchip: rk3399: derive ethaddr from cpuid") Signed-off-by: Heiko Stuebner Reviewed-by: Philipp Tomsich Reviewed-by: Kever Yang --- diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c index fdb763cc53..c0e4fdbc00 100644 --- a/arch/arm/mach-rockchip/misc.c +++ b/arch/arm/mach-rockchip/misc.c @@ -70,7 +70,7 @@ int rockchip_cpuid_from_efuse(const u32 cpuid_offset, } /* read the cpu_id range from the efuses */ - ret = misc_read(dev, cpuid_offset, cpuid, sizeof(cpuid)); + ret = misc_read(dev, cpuid_offset, cpuid, cpuid_length); if (ret) { debug("%s: reading cpuid from the efuses failed\n", __func__);