diff options
author | Johannes Stezenbach <js@sig21.net> | 2012-06-06 18:04:56 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-06-07 19:31:33 +0200 |
commit | 011702664fd6f75d7957b59c66ccd6a3290dc653 (patch) | |
tree | 257a66847b80d44c45449d154d5324cea27452fa | |
parent | 497d1c49f4b75a6827bb400513d53a39dc8bb57c (diff) | |
download | barebox-011702664fd6f75d7957b59c66ccd6a3290dc653.tar.gz barebox-011702664fd6f75d7957b59c66ccd6a3290dc653.tar.xz |
m25p80: prevent endless loop in erase
"erase /dev/myflash0 0+1" erased the whole flash,
similar for other value of count if you guessed the
erae block size wrong.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/nor/m25p80.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nor/m25p80.c b/drivers/nor/m25p80.c index 92b07af7f7..a3dfe75716 100644 --- a/drivers/nor/m25p80.c +++ b/drivers/nor/m25p80.c @@ -235,6 +235,8 @@ static ssize_t m25p80_erase(struct cdev *cdev, size_t count, unsigned long offse if (erase_sector(flash, addr)) return -EIO; + if (len <= flash->erasesize) + break; addr += flash->erasesize; len -= flash->erasesize; show_progress(progress++); |