--- /dev/null
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -149,8 +149,10 @@ static int m25p80_read(struct spi_nor *n
+ msg.data_nbits = m25p80_rx_nbits(nor);
+
+ ret = spi_flash_read(spi, &msg);
+- *retlen = msg.retlen;
+- return ret;
++ if (!ret) {
++ *retlen = msg.retlen;
++ return 0;
++ }
+ }
+
+ spi_message_init(&m);