diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c
index fdb763cc53ccd9a38f4ad8cefe6a030122726aac..c0e4fdbc00fec8b5779b792d1f36940bb6a1dc9b 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__);