Message ID | 20190925184056.13995-1-heiko@sntech.de |
---|---|
State | Accepted |
Commit | 03f98b75e47ef9df890d92b4989fdd209ba55734 |
Delegated to: | Philipp Tomsich |
Headers | show |
Series | [U-Boot] rockchip: misc: read the correct number of bytes from the efuse | expand |
> On 25.09.2019, at 20:40, Heiko Stuebner <heiko@sntech.de> wrote: > > 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 <heiko@sntech.de> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
On 2019/9/26 上午2:40, Heiko Stuebner wrote: > 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 <heiko@sntech.de> Reviewed-by: Kever Yang<kever.yang@rock-chips.com> Thanks, - Kever > --- > arch/arm/mach-rockchip/misc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c > index 4423b296b1..bed4317f7e 100644 > --- a/arch/arm/mach-rockchip/misc.c > +++ b/arch/arm/mach-rockchip/misc.c > @@ -75,7 +75,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__);
On 2019/9/27 上午8:58, Kever Yang wrote: > > On 2019/9/26 上午2:40, Heiko Stuebner wrote: >> 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 <heiko@sntech.de> > > Reviewed-by: Kever Yang<kever.yang@rock-chips.com> Applied to u-boot-rockchip/master. > > Thanks, > - Kever >> --- >> arch/arm/mach-rockchip/misc.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/arm/mach-rockchip/misc.c >> b/arch/arm/mach-rockchip/misc.c >> index 4423b296b1..bed4317f7e 100644 >> --- a/arch/arm/mach-rockchip/misc.c >> +++ b/arch/arm/mach-rockchip/misc.c >> @@ -75,7 +75,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__); > > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c index 4423b296b1..bed4317f7e 100644 --- a/arch/arm/mach-rockchip/misc.c +++ b/arch/arm/mach-rockchip/misc.c @@ -75,7 +75,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__);
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 <heiko@sntech.de> --- arch/arm/mach-rockchip/misc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)