misc_read() is documented to return the number of bytes read or a
negative error value.  The Rockchip drivers currently do not implement
this correctly and instead return zero on success or a negative error
value.

In preparation for fixing the drivers, fix the condition here to only
error on negative values.

Suggested-by: Jonas Karlman <jo...@kwiboo.se>
Signed-off-by: John Keeping <j...@metanate.com>
---
v3: new patch

 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 849014d2fb..7d03f0c2b6 100644
--- a/arch/arm/mach-rockchip/misc.c
+++ b/arch/arm/mach-rockchip/misc.c
@@ -83,7 +83,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, cpuid_length);
-       if (ret) {
+       if (ret < 0) {
                debug("%s: reading cpuid from the efuses failed\n",
                      __func__);
                return -1;
-- 
2.40.0

Reply via email to