diff options
Diffstat (limited to 'drivers/mtd/mtdraw.c')
-rw-r--r-- | drivers/mtd/mtdraw.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mtd/mtdraw.c b/drivers/mtd/mtdraw.c index 16157e9f48..f541802a84 100644 --- a/drivers/mtd/mtdraw.c +++ b/drivers/mtd/mtdraw.c @@ -128,7 +128,8 @@ static ssize_t mtdraw_read(struct cdev *cdev, void *buf, size_t count, skip = offset % (mtd->writesize + mtd->oobsize); while (ret > 0 && count > 0) { - toread = min_t(int, count, mtd->writesize + mtd->oobsize); + toread = min_t(int, count, + mtd->writesize + mtd->oobsize - skip); ret = mtdraw_read_unaligned(mtd, buf, toread, skip, numpage++ * mtd->writesize); buf += ret; @@ -137,7 +138,7 @@ static ssize_t mtdraw_read(struct cdev *cdev, void *buf, size_t count, retlen += ret; } if (ret < 0) - printf("err %lu\n", ret); + printf("err %zd\n", ret); else ret = retlen; return ret; |