diff --git a/cmd/read.c b/cmd/read.c
index ecf925426fccc87a85734a4eff36a7ed323d5996..82c2d9ad994ed1800c9c757b915ba67a018b8251 100644
--- a/cmd/read.c
+++ b/cmd/read.c
@@ -66,7 +66,7 @@ int do_read(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		return 1;
 	}
 
-	if (blk_dread(dev_desc, offset + blk, cnt, addr) < 0) {
+	if (blk_dread(dev_desc, offset + blk, cnt, addr) != cnt) {
 		printf("Error reading blocks\n");
 		return 1;
 	}